我现在的git回购协议上有几个分支。它们中的大多数已经被用来测试最终被抛弃的新特性,其中一些已经被实现并合并到我的主人那里。另一个(称之为master2)指的是我正在处理的同一代码的不同概念(可能应该有它自己的分支,但由于它现在被冻结了,我只想把它保存在那里,直到我找到时间投入它)。
我的问题是:除了master和master 2之外,如何删除所有旧的和现在未使用的分支?
我不介意把所有的旧历史都保存在远程存储库中,但也不介意丢失它们。我的目标是避免当我在本地处理回购时,旧的东西弄乱了我的自动完成。
我浏览过的另一个问题似乎是寻找更为复杂/专业的场景,其中一个场景希望将所有分支合并为掌握或类似的组合。相反,我希望(在某种意义上)重新开始,只在本地和最新可见的master和master2分支。特别是,我有一些分支尚未合并,但我仍然希望保留,这与建议的here不同。
如果有必要理解这是一份科学计算的回购协议。
最佳答案
您可以使用-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和另一个分支之外的所有分支。
关于git - Git-清理旧 Twig ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33154319/