我有一个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 add -u

- u - - -更新 只匹配索引中已经跟踪的文件,而不是工作树。这意味着它将永远不会运行新的文件,但是它将运行已修改的跟踪文件的新内容,并且如果工作树中的相应文件已被删除,它将从索引中删除文件。

如果给出了no,默认为".";换句话说,更新当前目录及其子目录中的所有跟踪文件。

其他回答

git rm test.txt

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

从Repo中删除所有以.log结尾的文件,但不删除本地存储

Git ls-files | grep "\.log$"

如果你简单地运行:

git add -u

Git将更新它的索引,以知道您已经删除的文件实际上应该是下一次提交的一部分。然后你可以运行“git commit”来检入这个更改。

或者,如果你运行:

git commit -a

它将自动接受这些更改(以及任何其他更改)并提交它们。

更新:如果您只想添加已删除的文件,请尝试:

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

迄今为止我发现的最灵活的解决办法是

git cola

然后选择我想要执行的所有已删除文件。

(注意,我通常在git中执行命令行,但git处理删除的文件有点尴尬)。

你可能在找-A:

git add -A

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