缩略短答案
如果您想要对以下命令进行更详细的解释,请在下一节中看到长的答案。
正在删除远程分支
git push origin --delete <branch> # Git version 1.7.0 or newer
git push origin -d <branch> # Shorter version (Git 1.7.0 or newer)
git push origin :<branch> # Git versions older than 1.7.0
删除本地分支
git branch --delete <branch>
git branch -d <branch> # Shorter version
git branch -D <branch> # Force-delete un-merged branches
取消当地远程跟踪处
git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter
git fetch <remote> --prune # Delete multiple obsolete remote-tracking branches
git fetch <remote> -p # Shorter
缩略长答:要删除三个不同的分支!
当你处理删除本地和远程分支时 记住有三个不同的部门参与其中:
- 地方分支机构
X
.
- 边远来源分支
X
.
- 当地远程跟踪处
origin/X
跟踪远程分支X
.
最初使用的海报是:
git branch -rd origin/bugfix
只删除了他的当地远程跟踪分支 origin/bugfix
,而不是实际的远程分支bugfix
上 年 月origin
.
删除实际的远程分支,您需要
git push origin --delete bugfix
补充详情
以下各节介绍在删除远程和远程跟踪分支时需要考虑的其他细节。
推动删除远程分支还删除远程跟踪分支
注意:删除远程分支X
使用 agit push
还将删除当地的远程跟踪分支 origin/X
因此,没有必要将过时的远程跟踪处用git fetch --prune
或git fetch -p
不过,如果你照做就不会疼了
您可以核实远程跟踪分支origin/X
通过运行以下操作,也删除:
# View just remote-tracking branches
git branch --remotes
git branch -r
# View both strictly local as well as remote-tracking branches
git branch --all
git branch -a
保护过时的当地远程跟踪分分机/X
如果您没有删除您的远程分支X
从命令行(如上)发出命令行(如上),然后您的本地仓库将仍然包含(一个现已过时的)远程跟踪分支origin/X
。如果您直接通过 GitHub 的网络界面删除远程分支,这种情况就会发生。
清除这些过时的远程跟踪分支(自Git 1.6.6版以来)的典型方法是简单地运行git fetch
和和--prune
短或短-p
. 请注意,这清除了所有在偏远地区已不复存在的偏远分支的所有陈旧的当地远程跟踪分支。:
git fetch origin --prune
git fetch origin -p # Shorter
以下是以下相关引文:1.6.6 释放说明(强调地雷):
学习“ 即时抓取” 学习 --all
和--multiple
选项,以运行从许多仓库获取的信息,以及--prune
选项,可删除过期的远程跟踪分支。更没有必要(虽然没有计划删除“远程更新”或“远程更新”)。
取代对过时的远程跟踪分支自动修剪的替代品
而不是通过git fetch -p
, 您可以避免进行额外的网络操作,而仅手动删除与--remotes
或-r
国旗 :
git branch --delete --remotes origin/X
git branch -dr origin/X # Shorter
另见