在上下文中:
git revert HEAD~2 myFile
fatal: bad revision '/Users/rose/gitTest/myFile'
我确定 HEAD~2 存在。
编辑琥珀色是正确的。我的意思是使用reset
而不是revert
.
如果您只想在给定提交中将单个文件恢复到其状态,则实际上需要使用 checkout
命令:
git checkout HEAD~2 myFile
revert
命令用于还原整个提交(它不会将您还原到该提交;它实际上只是还原该提交所做的更改 - 如果您在指定的提交之后有另一个提交,则后面的提交不会被还原)。
我在 IntelliJ 中收到此错误,这些答案都没有帮助我。这就是我解决它的方法。
不知何故,我的一个子模块添加了一个.git
目录。删除后,所有 git 功能都返回了。
git revert
不采用文件名参数。 你想要git checkout
吗?
我对 Idea/Webstorm 有一个"致命的:糟糕的修订",因为我在另一个目录中有一个 git 目录,没有使用正确的子模块或子树。
我用以下方法检查了.git
目录:
find ./ -name '.git' -print
Git revert 只接受提交
从文档中:
给定一个或多个现有提交,还原相关补丁引入的更改...
myFile
被集成为提交 - 因为git revert
不接受文件路径;只提交
更改一个文件以匹配以前的提交
要更改一个文件以匹配以前的提交 - 请使用git checkout
git checkout HEAD~2 myFile
我在Intellij上遇到了类似的问题。问题是有人添加了我试图在 Intellij 中比较的文件与 .gitignore ,而实际上并没有从 Git 中删除该文件。
你为什么要在那里指定myFile
?
Git 还原还原您指定的提交。
git revert HEAD~2
还原HEAD~2
提交
git revert HEAD~2 myfile
还原HEAD~2
和myFile
我myFile
您要还原的文件?在这种情况下使用
git checkout HEAD~2 -- myFile
如果你想删除任何提交,那么你可能需要使用 git rebase 命令
git 变基 -i 头~2
它将显示最后 2 条提交消息,如果您删除提交消息并保存该文件,删除的提交将自动消失......
情况下,我有一个不一致的状态,其中有问题的文件(带有错误的提交哈希)实际上并没有添加到 Git 中,这在某种程度上与 IntelliJ 的状态发生冲突。在命令行上使用 git 手动添加文件为我解决了这个问题。
我尝试了所有这些,git 抱怨我尝试签出的文件的路径规范未知。
对我来说,最简单的解决方法是在本地删除已经版本控制的文件并恢复到版本控制的版本。
,我在错误的目录中,甚至没有注意到
我使用了git revert 3d4a5bc
并收到了同样的致命:错误的修订错误。
就我而言,这是 VS Code 中的 git bash 终端的问题,我切换到默认的 CMD Windows 终端(也在 VS Code 中),并且该命令效果很好!