代码之家  ›  专栏  ›  技术社区  ›  Chaudhry Junaid

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

  •  14
  • Chaudhry Junaid  · 技术社区  · 9 年前

    我有这样的情况:

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

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

    当功能分支可能与其他开发人员共享或不共享时,重复将主功能合并到功能分支中,然后将功能重新合并到主功能中,有什么缺点吗?

    2 回复  |  直到 9 年前
        1
  •  12
  •   James Jacobson    9 年前

    据我所知,将master合并到您的功能分支中并不被认为是糟糕的做法@larsks的回答提供了一些关于如何使用rebase的好信息,这是一个选项。但一定要遵循黄金规则“不要重新设置存储库外部的提交的基础” (see Perils of rebasing) .

    澄清一下:“存在于存储库之外的提交”将是公共(推送)提交。

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

    对于更大的项目,我希望历史能够准确地显示发生了什么。所以在我工作的地方,我们通常将master合并到我们的功能分支中,以使它们与最新的代码保持同步。不过,我不一定认为这是适合每个人的全球最佳实践。然而,这也不被认为是糟糕的做法。

    有些人喜欢有非常干净的历史,所以对他们来说,重新定基可能是更好的选择。

        2
  •  9
  •   larsks    9 年前

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

    $ git checkout feature-x
    $ git rebase master
    

    这为您提供了:

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