我有我的主分支,然后我正在开发另一个功能,将其合并到我的本地主分支,然后将其推送到 Github。
现在我需要删除由于此合并而发生的所有更改,直到另行通知,但能够在稍后的时间点将它们合并回来。
我怎样才能做到这一点?
我有我的主分支,然后我正在开发另一个功能,将其合并到我的本地主分支,然后将其推送到 Github。
现在我需要删除由于此合并而发生的所有更改,直到另行通知,但能够在稍后的时间点将它们合并回来。
我怎样才能做到这一点?
您必须弄清楚哪些预合并提交代表“主线”,即您要保留的部分。您可以使用以下方法执行此操作git log
:
commit b556759a560650506da58e59f6a7c6a2c4bcb8f4
Merge: e3dac0d 090ad85
...以及对两个父提交的目视检查。(似乎总是git merge foo
会放在HEAD
父母列表的第一位和foo
第二位的首位,但我不确定这是否能保证。)
假设e3dac0d
是主线,所以我们要还原 的合并090ad85
,那就是
git revert -m e3dac0d b556759
有关更多详细信息,请参阅Torvalds 和 Hamano的恢复错误合并操作指南。