我正在使用两个git分支。
a -- b -- c <-- master
\
d <-- newbranch
到达commit d
之后,我意识到我需要稍微更改commit c
。我进入主分支并修改了commit c
。现在,commit c
变成了commit e
。 c and e
具有相同的提交消息。
a -- b -- e <-- master
\
c -- d <-- newbranch
因此,现在我的commit c
已无用。现在commit c
和commit e
在几个文件中有冲突,在所有它们有冲突的文件中,我希望保留commit e
的更改。另外,commit d
有重要的变化,我不想失去。
我希望我的最终结构是这样的。
a -- b -- e -- f <-- master
其中commit f
是commit d
的修订版,具有相同的提交消息。
我尝试先将主分支重新加入newbranch,然后又考虑将新分支重新引入主分支。但是由于存在大量冲突,并且在手动解决了冲突之后,我迷失了方向,变得一无所知,然后丢失了所有手动更正,需要再次开始进行基准调整。
如果有人请指导我有关我方法中应遵循的确切步骤,或者有更好的解决方案,请分享。谢谢。
答案 0 :(得分:1)
最简单的方法可能是将d
提交从newbranch
挑选到master
上:
# from master
git cherry-pick d
这将使我们具有以下分支结构:
master: a -- b -- e -- f (*f is actually the cherry pick of d)
\
c -- d