Git - rm相当于"add."?

Ste*_*eve 7 git git-add git-rm

如果你从命令行使用Git,有没有办法一次性删除在Changed但未更新列表中要删除的所有文件?而不是使用通配符手动删除.

Suj*_*pta 8

以下内容应在索引中暂存所有文件,无论是否删除;

git add -A
Run Code Online (Sandbox Code Playgroud)


CB *_*ley 3

在状态的“已更改但未更新”部分中显示为已删除的文件将从工作树中删除,但不会从索引中删除。要在索引中暂存删除(即从索引中删除文件),您可以执行以下操作:

git diff -z --name-only --diff-filter=D | git update-index --remove -z --stdin
Run Code Online (Sandbox Code Playgroud)

--diff-filter=D仅显示已删除文件与索引的差异,--name-only仅打印其名称并-z使用 NUL 分隔文件名,这样您就不必担心带有嵌入换行符的文件名。update-index然后从索引中删除给定的文件。

xargs如果您有支持的版本-0,那么您可以做得稍微简单一些:

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