2

在我们的项目中,我们使用 GIT 作为 SCM。像往常一样,我们为新功能、复杂的错误修复、下一个版本等创建单独的分支。当(例如)新功能完全实现时,它们会合并到 master 中,这是我们的“下一个版本”分支(并合并到主干并在以后的测试/部署期间生效)。因此,在将新功能分支合并到 master 之后,它就“死了”。目前我删除了“死”分支以保持分支列表小而清晰。但正如我在上次删除时注意到的那样,我这样做是以丢失分支历史为代价的。

我现在的问题是:处理“死”分支的最佳方法是什么?

4

2 回答 2

5

我会说已合并到 master 的分支,即由

git branch --merged

可以而且应该安全地删除

git branch -d <merged_branch>
git push --delete origin <merged_branch>

Git 的要点之一是创建(和合并)分支非常容易。您应该“尽早并经常分支”。但是让所有那些旧的已删除分支到处乱扔是很麻烦的。重要的历史信息在提交及其相互关系中。

请记住,合并提交的自动生成消息包含分支的名称。因此,确定原始分支名称通常没有问题(如果它包含一些有趣的信息)。

没有合并的分支是另外一回事:

git branch --no-merged

它们不能用 删除-d,但必须用 删除-D,所以很难误操作。就个人而言,我最终也删除了这些,但我等待的时间更长。

于 2013-06-18T16:13:03.653 回答
0

有时我喜欢复制一个分支,这样我就可以在合并到 master 之前压缩提交。这意味着 master 分支将有更少的提交并且历史更简单。

然后,我将删除压扁的分支并保留原始分支,以便在本地计算机上存储更详细的历史记录。在这一点上,我建议将分支标记为不需要合并到 master 上(合并不会有任何效果)。

git tag -a s1 -m "this branch was squash into <squash commit> on master"

Mercurial 允许您将分支标记为已死,以便它们无法合并到主分支上。

于 2016-04-21T14:55:36.800 回答