关于这个主题肯定已经有人问过类似的问题,但我找不到它,也找不到合适的词来寻找它。
假设我有这个:
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)
我如何告诉我的Branch2父f提交应该是e'而不是旧的e?
a -- b <-- Master
\
d'-- e' <-- Branch1
\
f -- g <-- Branch2
Run Code Online (Sandbox Code Playgroud)
基本上,当Pull Request通过 GithubBranch1合并时,不会包含、、或。masterBranch2ded'e'
确切的命令是:
git rebase --onto Branch1 e Branch2
Run Code Online (Sandbox Code Playgroud)
您可以将旧基 ( )Branch2之后的所有提交重播到新HEAD 上。Branch1eBranch1
重写时,您需要做的Branch1就是首先制作一个标记(tmp分支或标签)以标记“ e”提交。