删除 Git 中所有“已删除”的文件

War*_*ine 5 shell git

从 Git 存储库中删除手动删除的文件是否有比我当前容易出错的命令更好的解决方案?

git status | grep deleted: | cut -d: -f2 | xargs git rm
Run Code Online (Sandbox Code Playgroud)

Kev*_*eid 5

我认为您要求从索引中删除从工作树中删除的文件。git add -u除了在工作树中添加任何更改(但不是新文件)之外,该命令还将执行此操作。

为了更准确地完成您的要求,手册git-rm(1)页推荐了以下内容,这与您的解决方案基本相同,但不那么脆弱。

如果您真正想要做的只是从索引中删除工作树中不再存在的文件(可能是因为您的工作树很脏,因此您无法使用 git commit -a),请使用以下命令:

git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
Run Code Online (Sandbox Code Playgroud)

  • 如果您想在子目录中应用所有更改,例如获取库的新版本,那么您只需使用`git add -A library/`,这将在该目录中添加所有更改,包括新的和删除的文件. (2认同)