当尝试恢复 git 中的特定提交时,我收到此错误:
$ git 恢复 aaaf93201a28a57d540d633b1b723b8e513a47ed 错误:无法恢复,因为您有未合并的文件。 提示:在工作树中修复它们,然后使用 'git add/rm ' 提示:酌情标记解决方案并进行提交。 致命:恢复失败
这是关于合并冲突吗?但为什么在这种情况下它会说“未合并的文件”?
如果您想恢复到之前的工作状态,请执行以下操作:
git merge --abort
这是关于合并冲突,来自您之前尝试过的一些合并。未合并的文件是发生合并冲突的文件。
如错误消息中所述,在执行其他操作之前,您应该先处理这些文件和其中包含的冲突。另一个选项是进行硬重置 - 仅当您知道自己在做什么时才尝试此操作。
按照历史顺序,应用以下命令:
git reset --hard <commit-id>
git push -f origin <branch-name>
如果你跑步:
git status
它会输出类似:
On branch <yourBranch>
You are currently reverting commit <HashID>.
(fix conflicts and run "git revert --continue")
(use "git revert --skip" to skip this patch)
(use "git revert --abort" to cancel the revert operation)
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: <fileModified>
Unmerged paths:
(use "git restore --staged <file>..." to unstage)
(use "git add <file>..." to mark resolution)
both modified: <fileUnmerged>
在这种情况下,我建议运行以下命令来清除之前的尝试:
git revert --abort
然后运行以接受已恢复的提交中的更改:
git revert <hashID> --strategy-option theirs
或者保留晚于恢复提交的更改:
git revert <hashID> --strategy-option ours
如果您对它的工作原理还有疑问,请参考:
git revert --help