相關:git分支基本介紹
刪除分支
當一個分支被廢棄時,我們要做的是刪除分支,在徹底刪除一個分支時,需要三個步驟
- 刪除本地分支
- 刪除遠程分支
- 刪除本地追蹤分支,即追蹤遠程
master
的追蹤分支origin/master
刪除本地分支
在刪除分支的時候,我們會使用git branch --delete dev
來執行.有時還會通過縮寫git branch -d dev
來代替,使用中我們發現還有git branch -D dev
的寫法,他們有什么區別呢?
-
-d
是--delete
的縮寫,在使用--delete
刪除分支時,該分支必須完全和它的上游分支merge完成(了解上游分支,可以點擊查看鏈接),如果沒有上游分支,必須要和HEAD
完全merge
-D
是--delete --force
的縮寫,這樣寫可以在不檢查merge狀態的情況下刪除分支--force
簡寫-f
,作用是將當前branch重置到初始點(startpoint),如果不使用--force
的話,git分支無法修改一個已經存在的分支.
刪除遠程分支
指令git push origin --delete branch
,該指令也會刪除追蹤分支
刪除追蹤分支
通過指令git branch --delete --remotes <remote>/<branch>
,可以刪除追蹤分支,該操作并沒有真正刪除遠程分支,而是刪除的本地分支和遠程分支的關聯關系,即追蹤分支
如上,通過命令行git push origin --delete branch
會刪除遠程分支和追蹤分支,不需要單獨刪除追蹤分支,但是如果通過網頁對遠程分支進行刪除,追蹤分支是不會被刪除的.
在git版本1.6.6之后,可以通過git fetch origin --prune
或它的簡寫git fetch origin -p
來單獨刪除追蹤分支
補充:
git fetch
的--all
和--multiple
用來獲取多個資源
git --prune
用來刪除被廢棄的追蹤分支,該指令可以實現git remote update
和git remote prune
的功能,使得git remote update
和git remote prune
沒有太多存在的必要,盡管如此,目前git并沒有刪除這兩個指令的打算.