Git - 清理旧枝条

时间:2015-10-15 16:57:41

标签: git github branch

我目前的git repo上有几个分支。他们中的大多数已被用于测试最终被放弃的新功能,其中一些已经实现并合并到我的主人。另一个(称为master2)引用了我正在处理的相同代码的不同概念(并且可能应该拥有自己的分支,但是因为它现在被冻结,所以我只想将它保留在那里,直到我找到时间投入它)。

我的问题是:除了master和master 2之外,我如何删除所有旧的和现在未使用的分支?

我不介意将所有旧历史记录保存在远程存储库中,但我不介意丢失它们。我的目标是当我在本地处理回购时,避免旧的东西混乱我的自动完成。

我浏览过的其他问题似乎是寻求更加软化/专业的场景,其中一个人希望将所有分支合并为主或类似的组合。相反,我希望(在某种意义上)重新开始,只有我的master和master2分支在本地和最新可见。特别是,我有一些尚未合并的分支,但我仍然希望保留,不像建议的那样here

如果有必要了解这是科学计算的回购。

1 个答案:

答案 0 :(得分:1)

您可以使用-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和另一个分支。