错误:无法恢复,因为您有未合并的文件

问题描述 投票:0回答:4

当尝试恢复 git 中的特定提交时,我收到此错误:

$ git 恢复 aaaf93201a28a57d540d633b1b723b8e513a47ed
错误:无法恢复,因为您有未合并的文件。
提示:在工作树中修复它们,然后使用 'git add/rm '
提示:酌情标记解决方案并进行提交。
致命:恢复失败

这是关于合并冲突吗?但为什么在这种情况下它会说“未合并的文件”?

git git-revert
4个回答
17
投票

如果您想恢复到之前的工作状态,请执行以下操作:

git merge --abort


3
投票

这是关于合并冲突,来自您之前尝试过的一些合并。未合并的文件是发生合并冲突的文件。

如错误消息中所述,在执行其他操作之前,您应该先处理这些文件和其中包含的冲突。另一个选项是进行硬重置 - 仅当您知道自己在做什么时才尝试此操作。


3
投票

按照历史顺序,应用以下命令:

git reset --hard <commit-id>
git push -f origin <branch-name>

0
投票

如果你跑步:

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
© www.soinside.com 2019 - 2024. All rights reserved.