仅使用git add暂存已删除的文件

时间:2017-04-01 19:59:15

标签: git

我已经运行 git status 并查看了几个已修改的文件和几个已删除的文件。 是否可以仅暂存已删除或仅修改的文件?

5 个答案:

答案 0 :(得分:26)

如果您混合使用已修改和已删除的文件,并且只想将已删除的文件暂存到索引,则可以使用git ls-files作为过滤器。

git ls-files --deleted | xargs git add

如果您只希望将其应用于文件树的一部分,请将一个或多个子目录作为ls-files的参数:

git ls-files --deleted -- lib/foo | xargs git add

要仅对修改后的文件执行相同操作,请使用--modified-m)选项,而不是--deleted-d)。

答案 1 :(得分:3)

@steve答案相同,但有一点变化:

在命令末尾添加-all ,将 ls-files 命令返回的所有文件添加到存储中

git ls-files --deleted | xargs git add --all

答案 2 :(得分:1)

对于PowerShell

git ls-files --deleted | % {git add $_}

答案 3 :(得分:0)

在我看来,ls-files的所有爱都在这里

git add $(git diff --diff-filter=D --name-only)

更直接。

答案 4 :(得分:0)

另一种方式:

git diff --name-only --diff-filter=D | sed 's| |\\ |g' | xargs git add

我在这里使用 sed 是因为路径可能包含空格字符。