我有一个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添加的方式相同的东西。是的,如果可能的话。


当前回答

作为rm-all命令添加暂存删除文件的系统别名

UNIX 别名rm-all='git rm $(git ls-files——deleted)'

窗户 Doskey rm-all=bash -c "git rm $(git ls-files——deleted)"

Note

Windows需要安装bash。

其他回答

对于Git 1.x

$ git add -u

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

对于 Git 2.0

展示你的整个工作树:

$ git add -u :/

只执行当前路径:

$ git add -u .

如果你想把它添加到你的.gitconfig中,这样做:

[alias]
  rma = !git ls-files --deleted -z | xargs -0 git rm

然后你要做的就是跑:

git rma

你可能在找-A:

git add -A

这类似于git add -u,但也添加新文件。这大致相当于hg的addremove命令(尽管移动检测是自动的)。

正如前面提到的

git add -u

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

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

git reset HEAD <path>

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

我也需要 并且使用了git GUI的“换台”按钮。 它还添加了all。

在“换台”之后,我做了“提交”…

这样我的工作目录又干净了。