Git 恢复到合并分支之前的状态
我有我的主分支,然后我正在开发另一个功能,将它合并到我的本地主分支,然后将它推送到Github 现在,我需要删除由于这次合并而发生的所有更改,直到另行通知,但可以在稍后将它们重新合并Git 恢复到合并分支之前的状态,git,Git,我有我的主分支,然后我正在开发另一个功能,将它合并到我的本地主分支,然后将它推送到Github 现在,我需要删除由于这次合并而发生的所有更改,直到另行通知,但可以在稍后将它们重新合并 如何实现这一点?您必须找出哪些预合并提交代表“主线”,即您要保留的部分。您可以使用git日志执行此操作: commit b556759a560650506da58e59f6a7c6a2c4bcb8f4 Merge: e3dac0d 090ad85 。。。以及对两个父项的外观检查。(看起来,git merge fo
如何实现这一点?您必须找出哪些预合并提交代表“主线”,即您要保留的部分。您可以使用git日志执行此操作:
commit b556759a560650506da58e59f6a7c6a2c4bcb8f4
Merge: e3dac0d 090ad85
。。。以及对两个父项的外观检查。(看起来,git merge foo
总是将头放在父母列表的第一位,而foo的头放在第二位,但我不确定这是否可以保证。)
假设e3dac0d
是主线,那么我们想要还原090ad85
的合并,那么这就是
git revert -m e3dac0d b556759
有关更多详细信息,请参阅Torvalds和Hamano提供的。还要确保090ad85
仍在分支中(或在提交时创建一个新分支),以便以后可以检索/重新合并该分支。@Arjan:这是一个还原
,而不是一个重置
,因此可以在需要时重新还原<代码>090ad85将保留在历史记录中。