6

我一直在一个分支上工作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(如 I*、J*),因为它们涉及到我也想参与的重大重构new_feature。我也一直在对new_feature需要提交到port/new_feature(K*) 的新提交 (K)。

展望未来,保持new_featureport/new_feature同步的最佳计划是什么(但仅限于新变化)?我是否应该从一个到另一个(反之亦然)继续挑选提交?或者有没有一种方便的方法通过合并来做到这一点?

4

1 回答 1

1

摘樱桃很危险,因为:

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

  • 功能依赖项(请参阅“如何在 git 中合并特定提交”),但我怀疑在您的情况下这不是问题:I并且J不依赖于 H,并且可以安全地应用于3.

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

于 2012-11-21T07:58:12.167 回答