假设我的 git repo 中有以下结构:
C'---D'---E'---F' (dev)
/
A---B---C---D---E---F (master)
我要 pull
C'
进入主分支并将分支点更改为C'
,即我想把上面的变成 D'---E'---F' (dev)
/
A---B---C---C'---D---E---F (master)
我相信我应该结合使用cherry-picking和rebase,但我对如何准确地这样做感到困惑。我应该执行哪个操作序列?
建议 在对更清晰模式的评论之后(因为原始中的相同字母提交实际上是不必要的)
G---H---I---J (dev)
/
A---B---C---D---E---F (master)
与相关的预期结果:
H---I---J (dev)
/
A---B---C---G---D---E---F (master)
最佳答案
对于您的新图表,简短的回答是您重新设定基准 G
和:
git checkout master
git rebase <commit_id_G>
更长的答案是你很难看到这个,因为你在想
master
作为“主”分支,思考 dev
作为“分支”。但是,当然,这些分支名称只是标签,您可以将它们中的任何一个视为“主”分支。而且,由于
master
是我们真正想要改变的分支,我们可以像这样重新绘制图表: H---I---J (master)
/
A---B---C---D---E---F---G (dev)
与相关的预期结果:
H'--I'--J' (master)
/
A---B---C---D---E---F---G (dev)
希望在这里更容易看到,我们只需要 rebase
master
关闭这个新 D
而不是 C
.
关于git - 如何更改 Git 中的分支点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60224293/