Git - 清理旧分支

4
我当前的git仓库有几个分支。大部分用于测试新功能,但最终被放弃了,其中一些已经实现并合并到我的主分支。另一个分支(称为master2)涉及我正在开发的相同代码的不同概念(可能值得拥有自己的分支,但由于目前冻结了,我只想保留它,直到我有时间去专注它)。
我的问题是:除了主分支和master2,如何删除所有旧的和现在未使用的分支?
我不介意在远程存储库上保留所有旧历史记录,但我也不介意失去它们。我的目标是避免旧内容在本地工作时混乱我的自动完成。
我浏览过的其他问题似乎更多地关注于保留合并到主分支或类似组合的所有分支的复杂/专业场景。相反,我希望(在某种意义上)只有我的主分支和master2分支在本地可见且最新。特别是,我有一些尚未合并的分支,但我仍然想保留,与here所建议的不同。

如果理解这是一个科学计算的代码库,那么这个内容就很相关了。


可能是一个重复的问题,你可以参考这个链接如何删除已合并的所有git分支? - Makoto
如果没有其他的,复制将会给你启动命令;如果你只想批量删除东西,这是一个关于xargs命令的变体来做这件事。 - Makoto
1个回答

2
您可以使用-D开关来删除一个分支:
$ git branch -D branch_to_remove

Git没有内置的方式可以删除除了那两个分支以外的所有分支(至少我所知道的情况是这样的),但是您可以使用一个简单的shell脚本来实现:

$ git branch -D `git branch | grep -v master`
grep -v 反转了 grep 模式匹配。如果分支名称不同,则可以使用。
$ git branch -D `git branch | grep -v 'master\|another_branch'`

这将删除除名为master和另一个分支以外的所有分支。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接