当git revert中止并显示错误消息时,我该怎么办?

62

好的,所以当我尝试撤销一个提交时(使用Git),有时会出现错误。我所做的一切都是

git revert <commit hash>

这会给我一个消息:

error: could not revert <commit hash> <commit message>
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'

这是否意味着我应该使用 git mergetool 并解决任何冲突?一旦我这样做了,我可以添加/删除然后提交,撤消就完成了吗?


1
冲突应该出现在您的代码文件中,对吧?所以那就是您应该解决的地方。完成后,请确保提交正确的内容。 - Eric Herlitz
2个回答

35

是的,您需要解决冲突,并使用 git addgit rmgit commit 标记它们。

提交还没有完成,在执行 git revert 后 - 如果您看到 .git/MERGE_MSG,您会看到类似以下内容:

Revert "adding revert"

This reverts commit c1366607f15a8384434948cb0bcbf8ece48bb460。

冲突:

还原

因此,一旦您解决了合并冲突并执行了 git commit,您将会看到来自 MERGE_MSG 文件的消息,然后您可以提交,这样就完成了还原。


好的,谢谢!只是想确认一下我在做正确的事情 :) - icnhzabot
如果我意识到还原根本不需要,该怎么办?如何“清除”工作目录? - przemo_li
1
输入 git status,它会给你一个建议:(使用 "git revert --abort" 取消还原操作) - avandeursen
在你解决所有冲突之后,你可以使用 git revert --continue 完成操作。 - Vladimir Reshetnikov
很遗憾,我无法执行 git revert。我一直收到错误提示,如:“以下未跟踪的工作树文件将被合并覆盖:”。我甚至不能使用 force。我真的必须手动删除这些文件吗? - dafie

7
您可以使用 git reset --hard 命令,如果您想要删除所有冲突并取消您已执行的还原操作以解决中止错误。

我相信 git reset --mixed 是更安全的选项。 - jeffery_the_wind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接