在上下文中:
git revert HEAD~2 myFile
fatal: bad revision '/Users/rose/gitTest/myFile'
我确定 HEAD~2 存在。
编辑琥珀是正确的。我的意思是使用reset
而不是revert
.
在上下文中:
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
从文档:
给定一个或多个现有提交,还原相关补丁引入的更改...
myFile
被解释为提交 - 因为git revert
不接受文件路径;只提交
要更改一个文件以匹配先前的提交 - 使用git checkout
git checkout HEAD~2 myFile
我对 Intellij 有类似的问题。问题是有人将我试图在 Intellij 中比较的文件添加到 .gitignore,而实际上没有从 Git 中删除该文件。
如果要删除任何提交,则可能需要使用 git rebase 命令
git rebase -i HEAD~2
它将向您显示最后 2 条提交消息,如果您删除提交消息并保存该文件,删除的提交将自动消失...
你为什么要在myFile
那里指定?
Git revert 恢复您指定的提交。
git revert HEAD~2
恢复HEAD~2
提交
git revert HEAD~2 myfile
恢复HEAD~2
和myFile
我拿myFile
的是您要还原的文件吗?在这种情况下使用
git checkout HEAD~2 -- myFile
在我的情况下,我有一个不一致的状态,其中有问题的文件(带有错误的提交哈希)实际上没有添加到 Git,这与 IntelliJ 的状态发生了某种冲突。在命令行上使用 git 手动添加文件为我解决了这个问题。