git 删除分支
相关: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并没有删除这两个指令的打算.