当我运行git status
时,会出现一堆形式为:
deleted: dir/file.js
我可以使用 git checkout -- dir/file.js
逐个删除它们,但肯定有更简便的方法。(是的,我知道一开始应该用 git rm
)
[更新:正如下面Mark所指出的那样,git checkout --
实际上是恢复了一个被删除的文件,而我原本以为它把文件从git索引中删除了。我有点困惑,因为当你运行 git status
时,它会显示:
use "git checkout -- <file>..." to discard changes in working directory
我认为,“放弃更改”并不意味着“恢复您删除的文件”,但在git术语中,我想这是有道理的。
checkout
命令将会恢复这些被删除的文件,但是你说你本应该在一开始使用git rm
命令来移除这些文件。你想要将这些文件恢复到你的工作目录中,还是彻底从索引和工作目录中移除它们? - CB Baileygit checkout -- [filename]
所做的,而git checkout [filename]
则恢复文件。 - Trevor Burnhamgit checkout -- <filename>
中的--
只是一种确保<filename>
被解释为路径而不是分支名称(或标签或提交)的方法。如果<filename>
不是分支名称等,则您提到的两种形式具有相同的效果:将文件恢复到索引中的状态。 - Mark Longair