如何从git中的索引中仅删除意图添加文件?

时间:2012-10-21 01:35:53

标签: git

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

2 个答案:

答案 0 :(得分:4)

没有。 -N添加了哪些文件,而这些文件只是空的。

答案 1 :(得分: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。