我有一个Git repo,我用rm(不是Git rm)删除了四个文件,我的Git状态是这样的:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

我如何从Git中删除这些文件,而不需要手动查看并添加每个文件,就像这样:

git rm file1 file2 file3 file4

理想情况下,我正在寻找与git添加的方式相同的东西。是的,如果可能的话。


当前回答

首先使用该命令可以在Git中提交所有已删除的文件 Git add -u来执行删除的文件,然后使用Git commit -m "message"来提交更改,并附上描述提交的消息。git add命令中的-u标志将执行所有已删除的文件,以及工作目录中的任何其他更改。

其他回答

git rm test.txt

在您删除实际文件之前或之后。

正如前面提到的

git add -u

阶段删除文件删除,但也修改文件更新。

要取消已修改的文件,您可以执行

git reset HEAD <path>

如果你想保持你的提交有条理和干净。注意:这也可能取消已删除的文件,所以要小心那些通配符。

即使你有很多文件要处理,下面的方法也可以:

git ls-files --deleted | xargs git rm

您可能还希望提交注释。

详细信息请参见:有用的Git脚本

git ls-files --deleted -z | xargs -0 git rm --cached

这将删除所有之前被git跟踪的已删除文件,以及处理文件名中有空格的情况。

根据POSIX变量的不同,您可能需要使用xargs -0 -r:这将导致xargs在管道输出空内容时优雅地退出。

EDIT:——cached和——deleted标志一起使用,以防止意外删除尚未删除的文件。

如果只有这些变化,您可以简单地这样做

git commit -a

提交所有更改。这将包括已删除的文件。