9

有没有办法只用一个命令从索引中删除那些添加了 -N 标志的文件?

4

2 回答 2

4

不,Git 不会跟踪添加了哪些文件以及哪些文件是-N空的。

于 2012-10-21T01:48:05.440 回答
1

就在这里!仅使用 git:

git diff --name-only --diff-filter=A -z \
    | git restore --staged -q --pathspec-file-nul --pathspec-from-file=-

添加但没有内容的文件在工作树中-N显示为“已添加”( A),这就是使用 . 列出的内容--diff-filter=A。然后将该列表通过管道传输到git restore其中删除意图添加。

我之所以使用git restore,是因为git reset如果没有添加任何文件-N(因为 pathspec 为空),则只会重置整个索引。你也可以避免这个问题

git diff --name-only --diff-filter=A -z | xargs -r0 git reset -q --

这需要 GNU xargs。

于 2021-01-11T15:31:35.283 回答