我试图对一些未跟踪的文件执行 git clean 。我无意中输入了以下命令:
git clean -dn | grep -v <files_to_exclude> | git clean -df
请注意,该行似乎缺少一个xargs
. 也就是说,我通常会像这样编写前面的命令:
git clean -df | grep -v <files_to_exclude> | xargs git clean -df --
话虽如此,前者有效,后者无效!是的,我知道我可以使用:
git clean -df --exclude=<files_to_exclude>
那时我不知道排除选项。
只是为了确保您拥有正确的图片,假设您有三个未跟踪的文件x
, y
,z
并且您要排除x
.
$ git clean -dn | grep -v x
Would remove y
Would remove z
将这个输出直接连接到 xargs 而不省略“将删除”部分是错误的并且会导致 git clean 中断,这是有道理的。
现在的问题是:为什么它可以直接将此输出连接到 git clean 它仍然有效?