我应该将master合并到功能分支中以使其更新吗?这会被视为不良做法吗?

时间:2015-08-12 20:35:15

标签: git git-branch git-merge

我有这样的情况:

            (master)
A - B - E - F
      \       
        C - D
            (feature-x)

我是否应该将master合并到feature-x中,如果我需要将关键修复E和F放入feature-x分支继续开发,我打算合并回master?

当功能分支可能会或可能不会与其他开发人员共享时,重复将master合并到功能分支然后将功能重新转换为master会有什么不利之处吗?

2 个答案:

答案 0 :(得分:7)

据我了解,将master合并到您的功能分支并不算错误。 @larsks回答提供了一些关于如何使用rebasing的好信息,这是一个选项。但请务必遵循黄金法则“不要重新存档存储库外的提交”(see Perils of rebasing)

澄清:'存储库外存在的提交'将是公共(推送)提交。

如果你想知道是否反对,比合并更好,反之亦然,我建议你回顾一下:'Rebase vs. Merge'。文章指出,答案取决于您和您的团队认为最适合您项目的内容。

对于较大的项目,我喜欢历史记录以准确显示发生的事情。所以在我工作的地方,我们通常会将master合并到我们的功能分支中,以使它们与最新的代码保持同步。虽然,我不一定认为这是每个人的全球最佳实践。但是,这也不算错误。

其他一些人喜欢拥有非常干净的历史记录,因此对于他们来说,变调可能被认为是更好的选择。

答案 1 :(得分:5)

处理这种情况的最常见工作流程可能是rebase主分支上的功能分支:

$ git checkout feature-x
$ git rebase master

这会给你:

            (master)
A - B - E - F
             \       
               C - D
                   (feature-x)