相关:​​git分支基本介绍​

删除分支

当一个分支被废弃时,我们要做的是删除分支,在彻底删除一个分支时,需要三个步骤


  1. 删除本地分支
  2. 删除远程分支
  3. 删除本地追踪分支,即追踪远程​​master​​​的追踪分支​​origin/master​​​git push --origin -D -d有什么区别_商业


分支

删除本地分支

在删除分支的时候,我们会使用​​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 push --origin -D -d有什么区别_远程分支_02


删除追踪分支和远程分支

删除追踪分支

通过指令​​git branch --delete --remotes <remote>/<branch>​​,可以删除追踪分支,该操作并没有真正删除远程分支,而是删除的本地分支和远程分支的关联关系,即追踪分支


删除追踪分支

git push --origin -D -d有什么区别_商业_03

如上,通过命令行​​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并没有删除这两个指令的打算.

作者:sea_biscute