Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用git add仅暂存已删除的文件_Git - Fatal编程技术网

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

使用git add仅暂存已删除的文件,git,Git,我运行了git status,看到了几个修改过的文件和几个删除的文件。 是否可以只暂存已删除或已修改的文件?如果您混合了已修改和已删除的文件,并且只想将已删除的文件暂存到索引中,则可以使用git ls files作为过滤器 git ls-files --deleted | xargs git add 如果您只想将其应用于文件树的一部分,请将一个或多个子目录作为ls文件的参数提供给: git ls-files --deleted -- lib/foo | xargs git add 要仅对修改

我运行了git status,看到了几个修改过的文件和几个删除的文件。
是否可以只暂存已删除或已修改的文件?

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

git ls-files --deleted | xargs git add
如果您只想将其应用于文件树的一部分,请将一个或多个子目录作为
ls文件的参数提供给

git ls-files --deleted -- lib/foo | xargs git add
要仅对修改过的文件执行相同操作,请使用
--modified
-m
)选项,而不是
--deleted
-d
)。

与答案相同,但添加了一点更改:

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

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

在我看来,所有的爱
ls文件
都来到了这里

git add --all $(git diff --diff-filter=D --name-only)
更简单。

对于PowerShell

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

git status
还告诉您如何暂存和取消更改新的/修改的/删除的文件。如果删除文件的名称包含空格,则应将参数
-d“\n”
传递给xargs。对于具有特殊字符(甚至换行)的文件名,您也可以使用
git ls files-z--deleted | xargs-0 git add
。感谢steve-文件名中的特殊字符和空格如果要将其作为别名添加到
.gitconfig
,请注意:必须将命令和前缀字符串化
像这样:
sd=!“git ls files--deleted | xargs git add”
要说明文件名中的空格,请使用
git ls files--deleted | xargs-d'\n'git add--all