git - 在 Git 中从 "changed but not updated"删除所有已删除的文件

标签 git

当我运行 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/

相关文章:

git - 如何将 Winmerge 与 Git 扩展一起使用?

git - Hg-git 不推送 Github 上的提交

git - 以编程方式检查提交是否更新子模块

git push origin master :refs/heads/master what does this do

git - 如何让slave系统访问Jenkins中的Git仓库

git - 我怎样才能计算出 git 标签和原始提交之间的时间差

Git - 如何删除子模块中未跟踪的文件夹

git - 我如何使用一个命令 git fetch/pull 一个过时的未更改分支?

git - 如何在大量 git 存储库中收集发布版本

git - Git 如何跟踪您的存储库中的文件而不覆盖其他人分支中的文件?