首页 > 解决方案 > 删除所有不再在 Github 上的分支

问题描述

我在 GitHub 上有分支 Branch-Master、Branch-A、Branch-B、Branch-C。我通常合并到master并删除合并的分支。这会在我的本地机器上留下一堆分支,而不是 GitHub。

如何自动自动删除我的本地分支?我想创建一个 git 挂钩来执行此操作。

当我尝试

git remote prune origin

然后运行 ​​git branch,我仍然可以看到我所有的分支,甚至那些合并并删除到 master 中的分支。

我知道我能做到

git branch -d {the_local_branch}

手动,但这在执行 gitook 时没有帮助,或者我有多个分支要系统地删除。

我不喜欢这里给出的答案: 如何删除所有已合并的 Git 分支?

是它们基于名称,并推断已删除的分支,而不是以某种方式显式传递特定于该分支的分支 id。我在提供的链接中理解的是,如果我创建一个与已删除分支相同的分支名称,即使它们是不同的分支,它也会被删除。

如何在本地和远程删除 Git 分支?

不解决我的询问,因为它的解决方案已经在上面说明了。

如果它们存在,我宁愿使用使用分支 uid 的某种类型的比较函数。

标签: gitgithub

解决方案


您可以通过一个命令一次性删除所有分支(已签出的分支除外):

git branch --list | xargs git branch -D

如果你想指定一些模式来匹配分支名称,你也可以这样做:

git branch --list k* | xargs git branch -D

并在

git remote prune origin

您可以删除系统中不再引用的远程分支。

希望这可以帮助 !


推荐阅读