如果从GIT仓库中删除所有本地分支,我该如何删除它们。那有什么命令吗? 。我不想通过命令git branch -D / -d branch-name逐一进行。
答案 0 :(得分:3)
删除有关在原点上删除的分支的信息
当origin
上的分支被删除时,您的本地存储库就不会注意到这一点。
你仍然拥有这些分支的本地缓存版本(这实际上很好),但是git branch -a
仍会将它们列为远程分支。
您可以像这样在本地清理这些信息:
git remote prune origin
此删除的分支的本地副本不会被删除。
使用
可以达到同样的效果git fetch --prune
您也可以将其设置为默认值。
答案 1 :(得分:2)
删除(或“修剪”)不在repo中的本地分支
git remote prune origin
<强>剪枝强>
删除&lt; name&gt;下的所有陈旧跟踪分支。这些陈旧的分支已从&lt; name&gt;引用的远程存储库中删除,但仍在“remotes /&lt; name&gt;”中本地可用。
使用--dry-run选项,报告将修剪哪些分支,但不实际修剪它们。
答案 2 :(得分:0)
如果一个点train
并且现在不再有origin/train
,这听起来像是要求删除自己的名为origin/train
的分支。
这是(a)有点危险,(b)难以做到(因为没有任何内置可以记住&#34;有origin/train
&#34;),但是如果你重新定义问题有点困难。它仍然很危险。这意味着您告诉您的软件自动销毁信息是否丢失了您不想销毁的信息。例如,您可能在最后一两天将大量工作放入train
,然后有人删除了上游origin/train
而没有意识到您正在处理它。现在你告诉你的Git删除你的train
而没有给你机会恢复 origin/train
,你就失去了刚刚完成的工作。
(你可以通过HEAD
reflog来恢复你的工作,但这不是一个非常好的计划 - 这就是为什么我称之为&#34;有点危险&#34;。)< / p>
要查看删除丢失其上游的分支的方法(例如,在运行git remote prune origin
或git fetch --prune origin
之后),请参阅Remove local branches no longer on remote。