我经常发现自己在处理不同 git 分支上的两个不同工作票,但一个依赖于另一个,如下所示:
* later-branch
|
* earlier-branch
|
* some prior commit
|
Run Code Online (Sandbox Code Playgroud)
(这里的每个提交都是一次提交,因为我们使用的是 gerrit,但是这个问题也可能适用于每个提交的多个提交。)较早的分支可能正在接受审查,因此我可能不得不在某个时候返回并修改它与git commit --amend. 正如必须发生的那样,这将分叉历史:
* earlier-branch
|
| * later-branch
| |
| * previous version of earlier-branch
| /
* some prior commit
|
Run Code Online (Sandbox Code Playgroud)
在这一点上,我想later-branch在新版本的earlier-branch. 但是如果我只做 agit checkout later-branch后跟 a git rebase earlier-branch,它总是会发生冲突,因为(我认为)它必须首先将previous version of earlier-branch提交应用于earlier-branch.
我结束了正在做git checkout earlier-branch -b new-later-branch-name,然后git cherry-pick later-branch和git br -D later-branch …
git ×1