将提交移动到另一个分支,并提前快速转发原始分支

时间:2012-12-20 17:19:44

标签: git version-control branch

我有什么(假设左边是主人,右边是特征分支):

   | * part of feature 2 (HEAD)
   | |
 B * |
   | * bug fix (unrelated to feature)
   | |
   | * part of feature 1
   |/
 A *
   |

所以这里显而易见的问题是,一个错误修复(与该功能无关)被提交到一个功能分支。假设此错误修复很关键,并且需要在功能分支重新合并之前应用于master,但功能分支也应该从中受益。

所以我相信我想从功能分支中选择提交,将其应用于master(在正确的位置),然后将功能分支的起点更改为在提交之后。

我想要我想要的东西,在git拓扑中:

          | * part of feature 2 (HEAD)
        B * |
          | * part of feature 1
          |/
 bug fix  *
          |
        A *
          |

如何在命令行上使用git执行此操作?

1 个答案:

答案 0 :(得分:2)

我会:

  • 主分支中的cherry-pick bugfix
  • 在主分支中执行rebase -i,将错误修正提交放在您想要的位置(A和B之间)
  • rebase功能分支到错误修正提交(“到”是重要的,必须在参数中,因为你只希望A的提交在错误修正上重新定位)

每个命令都是标准的git,所以通过一些研究你应该是好的