如何将 git 合并转换为变基
How to convert a git merger into a rebase
我合并了两个分支。现在看来我不得不重新设置这两个分支。我应该怎么办?这就是我要找的东西
如果您在 develop 分支:
还原合并:
git reset --hard [last-commit-before-merge]
转到实验分支:
git checkout experiment
执行变基:
git rebase -i develop
您可以只将分支重置为合并前的点,然后改为执行变基。所以如果这是你的情况:
experiment
↓
A --- B --- C --- D --- E
/ \
* --- * --- * ----- X ----- M
↑
master
然后重置 master
以提交 X
,然后对实验执行变基:
git checkout master
git reset --hard X
git checkout experiment
git rebase master
那么你会得到这样的结果:
* -- * -- * -- X -- A' -- B' -- C' -- D' -- E'
↑ ↑
master experiment
因此合并提交 M
消失了,您的实验分支重新基于 master
。然后你可以快进 master 并摆脱 experiement 分支。
我合并了两个分支。现在看来我不得不重新设置这两个分支。我应该怎么办?这就是我要找的东西
如果您在 develop 分支:
还原合并:
git reset --hard [last-commit-before-merge]
转到实验分支:
git checkout experiment
执行变基:
git rebase -i develop
您可以只将分支重置为合并前的点,然后改为执行变基。所以如果这是你的情况:
experiment
↓
A --- B --- C --- D --- E
/ \
* --- * --- * ----- X ----- M
↑
master
然后重置 master
以提交 X
,然后对实验执行变基:
git checkout master
git reset --hard X
git checkout experiment
git rebase master
那么你会得到这样的结果:
* -- * -- * -- X -- A' -- B' -- C' -- D' -- E'
↑ ↑
master experiment
因此合并提交 M
消失了,您的实验分支重新基于 master
。然后你可以快进 master 并摆脱 experiement 分支。