我对 Git 没有那么丰富的经验,现在我遇到了一个大问题。
这是我当前的分支的样子:
feature /---F1-----F2----\
/ \
master -----M0-----M1-----M2-----M3-----M4
\ /
bugfix \--B1-----B2-----------/
情况:
有人做了一件非常糟糕的事情并推送了一个非常糟糕的合并(M3)。当我将 B1 和 B2 合并到 M4 后,我们的模型(不是源代码)无法加载时,我才注意到错误的合并。幸好我还没推M4。
问题:
我怎样才能把事情重新摆正呢?我想要 M0、M1、M2、F1、F2、B1 和 B2。但我不想要M3和M4(因为M4显然坏了)。如果我have放弃更改,则可以牺牲 F1 和 F2 :)
我在看git revert
但我不确定我完全理解它是如何工作的。所以...我真的希望得到有关如何解决这个问题的帮助。
提前致谢。
所以澄清一下,你想要的是这个,对吧?
feature /---F1-----F2
/
master -----M0-----M1-----M2
\
bugfix \--B1-----B2
确保HEAD
s feature
and bugfix
仍然在F2
and B2
分别。
Edit: if feature
and bugfix
没有分支,将它们设为分支(如果未提交,则隐藏您的工作):
git checkout F2
git branch feature
git checkout B2
git branch bugfix
Edit end
然后将master重置为M2:
git checkout master
git reset M2 --hard
(重置将使您丢失本地更改,如果您不想这样做,请隐藏它们。)
M3
and M4
不会立即被摧毁,但最终会被摧毁。他们不应该出现在git log
或 gitk。
然后是时候合并了feature
并制作一个M3'
那是对的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)