在下面的历史中,假设 commits BthroughE完全独立于 commits Fthrough I。
br-1 master
? ---A---B---C---D---E---F---G---H---I
Run Code Online (Sandbox Code Playgroud)
我如何结束一个看起来像这样的历史:
master
? ---A---F'--G'--H'--I'
\
`-B---C---D---E
br-1
Run Code Online (Sandbox Code Playgroud)
?
br-1并且master应该是分支。素数F'表示commit F' 包含与进入 commit 完全相同的更改 F。同样,对于G',H'和I'。
(实际上,所需的操作与git rebase br-1from执行相反,从master上面显示的第二个历史记录开始。)
两种选择。
1)
git checkout master
git rebase --interactive A
Run Code Online (Sandbox Code Playgroud)
删除 B 到 E 的行
2)
git checkout master
git rebase --onto A E
Run Code Online (Sandbox Code Playgroud)