我想知道发生了什么。我创建了一个HTML文件,并在其中放入了一些行
this is first line
this is second line
this is third line
this is fourth line
并且在每一行之后被提交,如分别提交a、提交B、提交c、提交d。
现在我执行了一个revert以提交c,但是它抛出了一个错误:
could not revert 82b69e5... c
hint: after resolving the conflicts, mark the corrected paths <br>
hint: with 'git add <paths>' or 'git rm <paths>' <br>
hint: and commit the result with 'git commit'<br>
我想知道git-revert是如何工作的,我知道类似于“撤销一个提交并添加一个新的提交”,但不知道如何成功地使用它。
3条答案
按热度按时间abithluo1#
它会为你想要还原的提交创建一个反转补丁,所以在你的例子中,提交
c
看起来像:然后,从
d
运行git revert c
,它会尝试创建以下代码并将其应用到树中:但是,您的文件如下所示:
所以创建的补丁不适用(文件末尾与第四行冲突)。所以当Git告诉你:
它的意思是“我试着做你要求的事情,但我面临着一个我无法解决的案例”,所以你需要:
git revert --quit
取消还原最有可能的解决方案是:
ni65a41a2#
git revert命令可以被认为是一个'undo'类型的命令,但是它不是一个传统的撤销操作。
本质上,它会撤销指定提交中所做的一切,然后在此过程中创建一个新的提交。您可以查看this以了解更多信息。
关于你的问题,你遇到了合并冲突,你可以使用git mergetools(Ex.Meld)来解决这些冲突。
ggazkfy83#
git revert命令可以被认为是一个“撤销”类型的命令,然而,它不是一个传统的撤销操作。
实际上,它会撤消在指定提交中完成的所有操作,然后在进程中创建一个新的提交。