【问题标题】:how to merge a branch to a branch that changed a lot and were not merge for a couple years如何将一个分支合并到一个变化很大并且几年没有合并的分支
【发布时间】:2021-12-05 09:47:24
【问题描述】:

分支机构:

  • dev: 我的主要分支
  • 实验性: 4 年前从 dev 中分离出来。
  • feature1: 从 6 个月前的实验中分离出来

现在我需要 feature1 的功能,但我不需要其他实验功能。如何将提交从 feature1 分支移动到 dev 但不合并它,会导致很多冲突? feature1 实验性的提交大约有 400 个提交,devexperimental 有大约 3000 个提交。

【问题讨论】:

    标签: git version-control git-flow


    【解决方案1】:

    和往常一样,让我们​​从可视化情况开始:

    o---o---o---o---o---o---o---o---o---o---o---o---o---o (dev)
             \
              o---o---o---o---o---o---o---o (experimental)
                               \
                                A---B---C (feature1)
    

    将更改从feature1 带入dev 的最简单方法是使用cherry-pick 命令:

    git switch dev
    git cherry-pick A^..C
    

    这将应用A(不包括)的父级和C(包括)在dev 之上的提交范围。换句话说,提交ABC

    o---o---o---o---o---o---o---o---o---o---o---o---o---o---A'---B'---C' (dev)
             \
              o---o---o---o---o---o---o---o (experimental)
                               \
                                A---B---C (feature1)
    

    请注意,您仍然必须解决 ABCdev 中包含的更改之间的任何冲突。但是,它不会像您尝试将 feature1 合并到 dev 一样多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2018-10-24
      • 1970-01-01
      相关资源
      最近更新 更多