尝试在git中还原特定提交时,我遇到了以下错误:
$ git revert aaaf93201a28a57d540d633b1b723b8e513a47ed 错误:由于您有未合并的文件,因此无法还原。 提示:在工作树中修复它们,然后使用“git add/rm”适当地标记解决方案并进行提交。 致命错误:还原失败
这是关于合并冲突吗?如果是这种情况,为什么会说“未合并的文件”?
尝试在git中还原特定提交时,我遇到了以下错误:
$ git revert 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 status来更好地了解你的工作分支或环境发生了什么。
如状态所述,最好的选择是运行以下命令来清除之前的尝试:
git revert --abort
现在你可以像以前一样在你的分支上工作了。 最后有两个简单的选项。
git revert <hashID> --strategy-option theirs
git revert <hashID> --strategy-option ours
如果你对它的工作原理还有疑问,请参考:
git revert --help