我有一个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 ls-files --deleted | xargs git rm

您可能还希望提交注释。

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

其他回答

对于visual studio项目

'git ls-files --deleted | sed 's/(.*)/"\1"/'| xargs git rm' 

当删除的文件路径有空间时,哪个是有用的

你可以使用

git add -u

要将删除的文件添加到暂存区域,然后提交它们

git commit -m "Deleted files manually"

(另一种变化)

我想删除所有已经删除的磁盘文件,但从一个特定的文件夹,留下其他文件夹不变。下面的方法对我很有效:

git ls-files --deleted  | grep <folder-name> | xargs git rm

对于Git 1.x

$ git add -u

这告诉git自动执行跟踪文件——包括删除之前跟踪的文件。

对于 Git 2.0

展示你的整个工作树:

$ git add -u :/

只执行当前路径:

$ git add -u .
git ls-files --deleted | xargs git rm 

是只添加已删除文件的最佳选项。

这里有一些其他的选择。

git add .  => Add all (tracked and modified)/new files in the working tree.

git add -u => Add all modified/removed files which are tracked.

git add -A => Add all (tracked and modified)/(tracked and removed)/new files in the working tree.

git commit -a -m "commit message" - Add and commit modified/removed files which are tracked.