关于文件系统:当它们已从fs中删除时,从git索引中删除文件

Delete files from git index when they are already deleted from fs

我从fs中删除了许多文件,并在git status中列出为已删除。

对于每个文件,我如何才能更快地分段这些更改,然后运行git rm


您可以使用以下方法进行此操作:

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

每当有人问这个问题时,人们都会建议使用git add -u,但这个答案的问题是,它也会在您的工作副本中进行其他修改,而不仅仅是删除。在许多情况下,这可能是可以的,但是如果您只想阶段性地删除工作副本中删除的文件,那么我提出的建议就更精确了。

实际上,git rm文档中有一个部分讨论了如何做您想要的事情——我认为"其他方式"部分中建议的命令与我在这里建议的命令是等效的。


使用-u标志:man git add

1
git add -u .


您可以使用git rm --cached"path/to/file"来暂存单个已删除的文件。

使用git rm -r --cached --"path/to/directory"建立一个完整的已删除目录。


Git添加-A

会帮你做的


git commit -a将处理删除的文件(以及修改的文件),并提示您提交消息。我通常执行EDOCX1(verbose)来查看修改文件的不同之处。

从手册页面:

by using the -a switch with the commit
command to automatically"add" changes
from all known files (i.e. all files
that are already listed in the index)
and to automatically"rm" files in the
index that have been removed from the
working tree, and then perform the
actual commit;