当父分支A从master更改时更改branchB的ref

MrY*_*iji 2 git rebase

关于这个主题肯定已经有人问过类似的问题,但我找不到它,也找不到合适的词来寻找它。

假设我有这个:

a -- b                  <-- Master
      \
       d -- e           <-- Branch1
             \
              f -- g    <-- Branch2
Run Code Online (Sandbox Code Playgroud)

d但在某些时候,在合并到 Master 之前,我必须重写 commits和eof中完成的代码Branch1,所以它们变成了d'e'

a -- b                  <-- Master
     |\
     | d'--e'           <-- Branch1
      \
       d --e
            \
             f -- g    < -- Branch2
Run Code Online (Sandbox Code Playgroud)

我如何告诉我的Branch2f提交应该是e'而不是旧的e

a -- b                  <-- Master
      \
       d'-- e'          <-- Branch1
             \
              f -- g    <-- Branch2
Run Code Online (Sandbox Code Playgroud)

基本上,当Pull Request通过 GithubBranch1合并时,不会包含、、或。masterBranch2ded'e'

Von*_*onC 5

确切的命令是:

git rebase --onto Branch1 e Branch2
Run Code Online (Sandbox Code Playgroud)

您可以将旧基 ( )Branch2之后所有提交重播到新HEAD 上。Branch1eBranch1

重写时,您需要做的Branch1就是首先制作一个标记(tmp分支或标签)以标记“ e”提交。