gpt4 book ai didi

git - 如何恢复使用 strategy=ours 的 merge ?

转载 作者:太空狗 更新时间:2023-10-29 12:46:47 25 4
gpt4 key购买 nike

我正在使用一个存储库,其中几周前执行了 merge ,我们刚刚发现它使用了 --strategy=ours 标志(它应该使用 --strategy-option=ours标志),因此不对 HEAD 应用任何更改。但是,我们需要应用更改。 Git 已经将分支识别为正在 merge ,并且在分支的历史记录中进行了提交。

这种 merge 无法使用 git revert -m ...

恢复

恢复和/或重新应用 merge 以更改文件的正确方法是什么?

master  A - B - E - F - G ---> L - M - N
\ /
topic C - D

merge 提交 (F) 将是这种情况下的罪魁祸首。

最佳答案

我已经找到了解决这个问题的方法。这一切都在 Linus 写的关于恢复错误 merge 的信中:How to revert a faulty merge .git merge --strategy=ours topic 在我们的例子中不是有意的。即使它是一个错误的 merge ,它也不能被恢复,并且已经被推送了很长时间,具有恢复 merge 提交而不能恢复恢复提交的相同效果。

解决方案是 check out 主题分支,从第一次提交开始运行 rebase --no-ff,然后将该分支 merge 回 master。

git checkout topic
git rebase -i --no-ff <C>
git checkout master
git merge topic

这产生了屈服的效果:

fixed–topic   C'–––D'––––––––––––––––––––-
/ \
master A–––B–––E–––F–––G –––> L–––M–––N–––F2
\ /
topic C–––D

要真正深入理解这一点,请阅读这封信的最后部分 How to Revert a Faulty Merge使用 --no-ff rebase 选项重新创建分支。

关于git - 如何恢复使用 strategy=ours 的 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com