我对Git没有经验,现在我有一个很大的问题落到了我的腿上.
这是我当前分支的样子:
feature /---F1-----F2----\
/ \
master -----M0-----M1-----M2-----M3-----M4
\ /
bugfix \--B1-----B2-----------/
Run Code Online (Sandbox Code Playgroud)
情况:
有人做了一件非常糟糕的事情并推出了一个非常糟糕的合并(M3).在我将B1和B2合并到M4之后,当我们的模型(不是源代码)无法加载时,我才注意到错误的合并.幸运的是,我还没有推过M4.
问题:
我该如何重新设置好的东西?我想要M0,M1,M2,F1,F2,B1和B2.但我不想要M3和M4(因为M4显然已被打破).如果我不得不放弃改变,那么可以牺牲F1和F2 :)
我看着,git revert但我不相信我完全理解它是如何工作的.所以...我真的希望得到如何解决这个问题的帮助.
提前致谢.
所以要澄清一下,你想要的是这个,对吧?
feature /---F1-----F2
/
master -----M0-----M1-----M2
\
bugfix \--B1-----B2
Run Code Online (Sandbox Code Playgroud)
确保HEAD小号feature和bugfix仍然在F2和B2分别.
编辑:如果feature并且bugfix没有分支,请将它们设为分支(如果未分配则隐藏您的工作):
git checkout F2
git branch feature
git checkout B2
git branch bugfix
Run Code Online (Sandbox Code Playgroud)
编辑结束
然后将主机重置为M2:
git checkout master
git reset M2 --hard
Run Code Online (Sandbox Code Playgroud)
(重置会让你丢失你的本地更改,如果你不想这样,就会藏匿它们.)
M3并且M4不会立即被摧毁,但最终会被摧毁.他们不应该出现git log或gitk.
然后是时候合并feature并做出一个M3'正确的.
| 归档时间: |
|
| 查看次数: |
7756 次 |
| 最近记录: |