首先,我之前在这里看到过这个问题的答案,但是被很多不正确回答我的问题的“答案”埋没了,以至于我再也找不到它了。
所以问题来了:如何在Git中恢复到历史的先前版本,使其成为我当前历史记录的新提交?
基本上,这是我想要在版本控制系统中做的最基本的事情。简单地进行重置不起作用,因为它会丢弃我的历史记录,简单的还原也不起作用,因为有时会出现错误消息(我想要做的应该可以在没有任何错误消息的情况下完成)。
如果我只是执行
所以问题来了:如何在Git中恢复到历史的先前版本,使其成为我当前历史记录的新提交?
基本上,这是我想要在版本控制系统中做的最基本的事情。简单地进行重置不起作用,因为它会丢弃我的历史记录,简单的还原也不起作用,因为有时会出现错误消息(我想要做的应该可以在没有任何错误消息的情况下完成)。
如果我只是执行
git revert
,会出现以下错误:git revert HEAD~1
error: could not revert f1b44e3... Towards translating API to kernel.
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
git revert
的意思是“撤销一个单独的、具体的提交”,而不是“返回先前的版本”。Mercurial 的这个操作的名称更好:hg backout
。Mercurial 有一个带有您在此期望的含义的hg revert
!同时,Dai's answer 是正确的。 - torek