在合并一个分支之后,我应该删除它吗?

在合并一个分支之后,是否从存储库中删除它?
这到底是不是个好习惯?

我通常会创建很多分支,因为我不想破坏当前的版本,而且我希望删除它们以使事情井然有序。
但是,如果您使用 Assembla 或 GitHub,您来自旧分支的合并请求将保存在站点上,因此如果您删除它们,您将得到一个错误,因为它将无法获取它们..。

通常是怎么做到的?

66080 次浏览

删除已合并的分支没有问题。所有的提交在历史记录中仍然可用,甚至在 GitHub 界面中,它们仍然会显示出来(参见,例如,这个公关,它指的是 PR 被接受后我删除的一个 fork)。

我肯定会在树枝合并之后把它们清理干净。

我们在工作中使用 GitLab 和合并请求,所以关于分支的历史信息存储在那里; 我不需要它们把我的分支列表弄得乱七八糟,当我查看同事的分支时,理想情况下我只想看到他们当前活跃开发的分支。如果我试图查看他们分支上的一些代码,我希望能够只查看几个当前活动的分支,而不是他们已经开始工作的所有特性或修复。

以上这些也适用于 BitBucket 和 GitHub。

合并后不删除分支的唯一原因可能是为了知道给定特性的结束位置,但是合并提交(如果确实需要,可以使用 git merge --no-ff)使这个特性变得无关紧要。

照顾好自己
删除分支的所有超链接 URL 引用将为 坏了

比如说
如果你从你的回购中删除 branch_feature_x分支
此分支的相应超链接 URL 将被中断
Https://github.com/username/project/tree/branch_feature_x

只是澄清一下,从 git 的角度来看,分支只是 链接到一些提交。 通过删除分支,您将不会删除来自 git repo 的提交。当然,分离提交将在一段时间后通过 git 垃圾收集器进行清理。

提示: 我们通常通过 bitbucket 接口将分支合并到 master 中。在那里你可以设置 delete feature branch after merge标志。

如果您需要处理太旧的分支,您可以查看一些实用程序,例如 这个