当它们已从fs中删除时,从git索引中删除文件

Bog*_*iev 35 filesystems git

我从fs中删除了一堆文件,并列为已删除git status.

如何更快地暂存此更改,然后git rm为每个文件运行?

Mar*_*air 78

你可以这样做:

git ls-files --deleted -z | xargs -0 git rm
Run Code Online (Sandbox Code Playgroud)

人们建议git add -u,每当提出这个问题时,问题的答案就是它还会在你的工作副本中进行其他修改,而不仅仅是删除.在许多情况下这可能没问题,但是如果你想暂时删除已从工作副本中删除的文件,我提出的建议就更准确了.

实际上,有中的部分git rm文件,讨论如何做你想做的-我相信,命令中的"其他方式"一节中提出相当于我在这里建议的内容.

  • @Simon Whitaker:即使文件名中有空格或换行符,也可以使命令工作,输出列出的文件用NUL字节而不是换行符分隔. (4认同)
  • 谢谢!这是一个很好的别名:'rd ="!git ls-files --deleted -z | xargs -0 git rm"'(把它放在.gitconfig中没有外部单引号,在[alias]下.然后运行'git rd'下一次). (3认同)

Gam*_*ing 7

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

用于git rm -r --cached -- "path/to/directory"暂存完整删除的目录。