在我们的项目中,我们使用 GIT 作为 SCM。像往常一样,我们为新功能、复杂的错误修复、下一个版本等创建单独的分支。当(例如)一个新特性被完全实现时,它们被 merge 到 master 中,这是我们的“下一个版本”分支(并被 merge 到主干中,并在以后的测试/部署期间生效)。所以在一个新的功能分支被 merge 到 master 之后,它就“死了”。目前我删除了“死”分支以保持分支列表小而清晰。但正如我在最后一次删除时注意到的那样,我这样做是以丢失分支历史记录为代价的。
我现在的问题是:处理“死”分支的最佳方法是什么?
我会说已经 merge 到master的分支,即由
列出
git branch --merged
可以而且应该安全地删除
git branch -d <merged_branch>
git push --delete origin <merged_branch>
Git 的优点之一是创建(和 merge )分支非常容易。您应该“尽早且经常分支”。但是让所有那些旧的已删除分支随处可见是很麻烦的。重要的历史信息存在于提交及其彼此之间的关系中。
请记住, merge 提交的自动生成消息包含分支的名称。所以确定原始分支名称通常没有问题(以防它包含一些有趣的信息)。
没有 merge 的分支另当别论:
git branch --no-merged
不能用-d
删除,必须用-D
删除,不易误操作。就个人而言,我最终也删除了那些,但我等待的时间很多。