我有一个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 $(git ls-files -d)

删除git ls-files命令列出的所有文件(-d show only deleted files)。不适用于文件名或路径中有空格的文件,但易于记忆

只运行已删除的文件:

for x in $(git status | grep deleted | awk '{print $2}'); do git rm $x; done

或者(xargs方式):

git status | awk '/deleted/ {print $2}' | xargs git rm

您可以为首选命令集添加别名,以便以后使用。

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

告诉命令自动生成已修改和删除的文件,但未通知Git的新文件不受影响:

——一个 ——所有

git add . && git commit -m -a "Your commit"

or

git add --all && git commit -m "Your commit"

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

git cola

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

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