Hig*_*ife 9 git git-merge git-revert
我正在使用几周前进行合并的存储库,我们刚刚发现它使用了--strategy=ours标志(它应该使用--strategy-option =我们的标志),因此不对HEAD应用任何更改.但是,我们需要应用更改.Git已经将分支识别为已合并以及分支历史中的提交.
无法使用此类合并进行还原 git revert -m ...
恢复和/或重新应用合并以更改文件的正确方法是什么?
master A - B - E - F - G ---> L - M - N
\ /
topic C - D
Run Code Online (Sandbox Code Playgroud)
合并提交(F)将是此方案的罪魁祸首.
我发现了这个问题的解决方案.Linus写的关于恢复错误合并的信中写着:如何恢复错误的合并.在git merge --strategy=ours topic我们的情况并不打算.即使它是一个错误的合并,它也无法恢复,并且长期被推动,具有与恢复合并提交相同的效果,而无法恢复恢复提交.
解决方案是签出主题分支,rebase --no-ff从第一次提交运行,然后将该分支合并回master.
git checkout topic
git rebase -i --no-ff <C>
git checkout master
git merge topic
Run Code Online (Sandbox Code Playgroud)
这具有屈服的效果:
fixed–topic C'–––D'––––––––––––––––––––-
/ \
master A–––B–––E–––F–––G –––> L–––M–––N–––F2
\ /
topic C–––D
Run Code Online (Sandbox Code Playgroud)
要深入了解这一点,请阅读使用rebase选项重新创建分支的字母如何还原错误合并的最后一部分--no-ff.
| 归档时间: |
|
| 查看次数: |
3659 次 |
| 最近记录: |