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