1

我所拥有的(假设左边是master,右边是一个特性分支):

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

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

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

我想要的,在 git 拓扑中:

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

我如何在命令行上使用 git 来做到这一点?

4

1 回答 1

2

我会 :

  • 主分支中的樱桃挑选错误修复
  • 在主分支中执行 rebase -i 以将错误修复提交放置在您想要的位置(在 A 和 B 之间)
  • 将功能分支重新定位到错误修复提交(“onto”很重要,并且必须在参数中,因为您只希望 A 的提交基于错误修复)

每个命令都是标准的 git,所以稍微研究一下你应该会很好

于 2012-12-20T17:24:56.997 回答