从历史记录创建一个新的提交
问题描述:
假设有人已经用一些废话更新了远程起源,我想忽略它。我的回购看起来像从历史记录创建一个新的提交
A-B-C-D
和远程是
A-B-C-D-E-F
我基本上要抛弃è&女,但保留了历史,所以希望的结果会是什么样子
/-----\
A-B-C-D-E-F-G
我无法看到如何重置或回复,而无需重新播放顶部的E & F.我看不到如何合并而不保留E的更改。 D & D应该基本相同。
答
所以,你想撤消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
为什么我会带F那么E两两个复归命令?我得到了它与测试回购工作,并愉快地恢复后,一些怪物合并。有没有简单的方法来接受所有的目标变化? – Wil 2010-09-01 15:28:01
'git revert'一次只能恢复一次提交;我的印象是你想恢复* *提交*单一*恢复提交。 – mipadi 2010-09-01 15:37:55
我可以跳过F吗?可以直接去E吗?从本质上讲,它只是将HEAD重置为之前的状态,所以使用'-n'标志我可以编辑,创建一个新的提交消息并继续前进? E&F仍然会在历史中,但是它们的变化在'revert -n $ E'之后会在合并中恢复? – Wil 2010-09-01 16:15:45