2010-09-01 133 views
1

假设有人已经用一些废话更新了远程起源,我想忽略它。我的回购看起来像从历史记录创建一个新的提交

A-B-C-D 

和远程是

A-B-C-D-E-F 

我基本上要抛弃è&女,但保留了历史,所以希望的结果会是什么样子

 /-----\ 
A-B-C-D-E-F-G 

我无法看到如何重置或回复,而无需重新播放顶部的E & F.我看不到如何合并而不保留E的更改。 D & D应该基本相同。

回答

3

所以,你想撤消E和F的变化,但在历史中保留E和F?使用git revert-n(不提交)选项:

$ git revert -n $F 
$ git revert -n $E 
# Fix conflicts, check to make sure the reverts look good, etc. 
$ git commit 
+0

为什么我会带F那么E两两个复归命令?我得到了它与测试回购工作,并愉快地恢复后,一些怪物合并。有没有简单的方法来接受所有的目标变化? – Wil 2010-09-01 15:28:01

+0

'git revert'一次只能恢复一次提交;我的印象是你想恢复* *提交*单一*恢复提交。 – mipadi 2010-09-01 15:37:55

+0

我可以跳过F吗?可以直接去E吗?从本质上讲,它只是将HEAD重置为之前的状态,所以使用'-n'标志我可以编辑,创建一个新的提交消息并继续前进? E&F仍然会在历史中,但是它们的变化在'revert -n $ E'之后会在合并中恢复? – Wil 2010-09-01 16:15:45

相关问题