如果我的本地分支从GIT repo中被删除,我如何删除它们。对此有什么命令吗?我不想通过命令git branch -D/-d branch-name逐个执行它。
发布于 2017-06-20 04:47:35
删除源上已删除分支的信息
当origin
上的分支被删除时,您的本地存储库不会注意到这一点。
您仍然拥有这些分支的本地缓存版本(这实际上很好),但git branch -a
仍然会将它们列为远程分支。
您可以像这样在本地清理该信息:
git remote prune origin
此操作不会删除已删除分支的本地副本。
同样的效果可以通过使用
git fetch --prune
您也可以将其设置为默认值。
发布于 2017-06-20 04:33:35
删除(或“修剪”)不在存储库中的本地分支
git remote prune origin
修剪
删除下的所有陈旧跟踪分支。这些陈旧的分支已经从引用的远程存储库中删除,但仍然在"remotes/“中本地可用。
使用--dry run选项,报告哪些分支将被修剪,但不实际修剪它们。
发布于 2017-06-20 14:50:20
这听起来像是您在请求一种方法来删除您自己的名为train
的分支,前提是曾经有一个origin/train
,而现在不再有origin/train
。
这(a)有点危险,(b)很难做到(因为没有内置的东西来记住“有一个origin/train
"),但是如果你重新定义一下这个问题,它就不那么困难了。它仍然是危险的。这意味着你在告诉你的软件自动销毁信息,不管它是否丢失了你不想销毁的信息。例如,您可能在过去一两天内在train
中投入了大量工作,然后有人删除了上游origin/train
,而没有意识到您正在处理它。现在你告诉你的Git删除你的train
而不给你恢复origin/train
的机会,你就失去了你刚才所做的工作。
(你可以通过HEAD
reflog恢复你的工作,但这不是一个很好的计划--这就是为什么我称之为“有点危险”的原因。)
要查看删除失去上游的分支的方法(例如,在运行git remote prune origin
或git fetch --prune origin
之后),请参阅Remove local branches no longer on remote。
https://stackoverflow.com/questions/44643712
复制