“致命的:不好的修订”是什么意思?

在上下文中:

git revert HEAD~2 myFile fatal: bad revision '/Users/rose/gitTest/myFile' 

我确定HEAD〜2存在。

编辑琥珀是正确的。 我打算使用reset而不是revert

如果您只想在给定的提交中将单个文件恢复到其状态,则实际上要使用checkout命令:

 git checkout HEAD~2 myFile 

revert命令用于恢复整个提交(并且不会将您恢复提交;实际上它只是恢复由该提交所做的更改 – 如果在指定的提交之后还有另一个提交,则以后的提交将不会恢复)。

git revert不采取文件名参数。 你想要git checkout

Git还原只接受提交

从文档:

给定一个或多个现有的提交,恢复相关的修补程序引入的更改…

myFile被解释为提交 – 因为git revert不接受文件path; 只提交

更改一个文件以匹配先前的提交

要更改一个文件以匹配以前的提交 – 使用git checkout

 git checkout HEAD~2 myFile 

我在IntelliJ中得到这个错误,这些答案都没有帮助我。 所以这是我如何解决它。

不知何故,我的一个子模块添加了一个.git目录。 所有的gitfunction,我删除后返回。

我有一个“致命的:坏的版本”与Idea / Webstorm,因为我有一个在另一个git目录,没有使用正确的子模块或子树。

我检查了.git dirs:

 find ./ -name '.git' -print 

你为什么在那里指定myFile

Git还原恢复您指定的提交。

 git revert HEAD~2 

恢复HEAD~2提交

 git revert HEAD~2 myfile 

还原HEAD~2myFile

我把我的文件是你想要恢复的文件? 在这种情况下使用

git checkout HEAD~2 -- myFile

如果你想删除任何提交,那么你可能需要使用git rebase命令

git rebase -i HEAD〜2

它会显示你最后2提交消息,如果你删除提交消息,并保存该文件删除提交将自动消失…