Git保持单独的分支同步

时间:2012-11-20 21:26:23

标签: git merge workflow branch

我一直在分支new_feature

A -- B -- C -- D    master
      \    \
       \    1 -- 2 -- 3  new_feature
        \
         E -- F -- G  port

我们的代码库还有一个较旧的分支port,其他开发人员将我们的产品移植到另一个RDBMS。 port尚未准备好合并回master

最近有必要让new_featureport工作。所以我将这两个合并到一个新的分支port/new_feature中,并在那里做了一些提交(I,J)以使其工作:

A -- B -- C -- D    master
      \    \
       \    1 -- 2 -- 3 -- I* -- J* -- K new_feature
        \              \
         E -- F -- G -- H -- I -- J -- K*  port/new_feature
                  port

我挑选了I和J回到new_feature(因为我*,J *),因为它们涉及我想在new_feature中进行的重大重构。我也一直在向new_feature提交需要转移到port/new_feature(K *)的新提交(K)。

展望未来,保持new_featureport/new_feature同步(但仅针对新变更)的最佳方案是什么?我应该保持从一个到另一个的樱桃采摘(反之亦然)吗?或者有一种方便的方法来合并吗?

1 个答案:

答案 0 :(得分:1)

采摘樱桃是危险的,因为:

  • 重复提交(下一次合并会很复杂,因为Git会尝试在I-J-K)之上重新应用I-J-K
    如果您将一个分支重新设置在另一个分支之上,则不会出现这种情况(请参阅“Git cherry pick and datamodel integrity”),但在您的情况下这是不可能的。

  • 功能依赖(请参阅“How to merge a specific commit in git”),但我怀疑这不是您的问题:IJ不依赖于{{ 1}},可以安全地应用于H

如果您不打算将端口和新功能合并在一起,那么采摘樱桃很方便 如果是这种情况,请继续挑选。