【发布时间】:2011-09-27 17:17:09
【问题描述】:
我有一个 git 别名 (git undo),可以撤消工作目录中的所有内容,包括新文件、更改的文件和删除的文件:
!git reset --hard && git ls-files -d | xargs -0 git rm --ignore-unmatch && git clean -fq
在 OS X 上,这很好用。然而,在 Linux 上,我遇到了以下问题:如果没有从存储库中删除文件,git ls-files -d | xargs -0 git rm --ignore-unmatch 命令将失败(xargs 将不会传递任何内容)。
如果xargs 没有收到来自git ls-files 的任何消息,有没有办法让xargs 默默地继续前进?
【问题讨论】:
-
如果您将
-0选项传递给xargs,那么您还必须将-z选项与git ls-files一起使用。 -
请注意,要撤消一切,您可能(也可能不想)说
git clean -qfdx(参见git help clean)