4
我有我的主分支,然后我正在处理另一个功能,将其合并到本地主服务器,然后将其推送到Github。恢复到合并分支之前
现在我需要删除由于此合并而发生的所有更改,直到进一步通知,但能够在稍后的时间点将它们合并回来。
我怎样才能做到这一点?
我有我的主分支,然后我正在处理另一个功能,将其合并到本地主服务器,然后将其推送到Github。恢复到合并分支之前
现在我需要删除由于此合并而发生的所有更改,直到进一步通知,但能够在稍后的时间点将它们合并回来。
我怎样才能做到这一点?
你必须弄清楚哪些预合并提交代表“主线”,即你想保留的部分。您可以使用git log
:
commit b556759a560650506da58e59f6a7c6a2c4bcb8f4
Merge: e3dac0d 090ad85
...以及对两个父提交的视觉检查。 (这似乎这将git merge foo
始终把HEAD
在家长的名单和foo
秒头的第一个位置,但我不知道这是保证。)
假设e3dac0d
是主线,所以我们要恢复的090ad85
合并式,那么这就是
git revert -m e3dac0d b556759
有关详细信息,请参阅revert a faulty merge howto由Torvalds和滨野。
还要确保'090ad85'仍然在一个分支中(或在该提交上创建一个新的分支),以便稍后可以检索/重新合并。 – Arjan 2013-03-22 15:15:09
@Arjan:这是一个'revert',而不是'reset',所以如果需要它可以重新恢复。 '090ad85'将留在历史中。 – 2013-03-22 15:16:24