当我运行 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 术语中我认为这是有道理的。]
最佳答案
正如 rampion 指出的那样,您仍然可以使用 git rm
暂存删除工作副本中已删除的文件(例如只是 git rm dir/file.js
在你的情况下。)如果你有很多这些文件列为“已删除:”在“已更改但未更新”下,我会首先检查 git ls-files --deleted
产生这些文件的列表,如果是,则删除它们:
git ls-files --deleted -z | xargs -0 git rm
关于git - 在 Git 中从 "changed but not updated"删除所有已删除的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169787/