获取Git控制文件夹中所有未版本控制文件的列表

Rya*_*ter 21 unix git bash version-control grep

获取Git控制的文件夹中的无版本文件列表比它需要的更烦人.除非我真的很厌倦阅读手册页,否则看起来Git并不提供单独执行此操作的工具.

可能有一种更优雅的方式来执行此操作,但这是一个单行程,我为这项任务投入,以防其他人需要使用它.

编辑:结果是有一种标准的方法来做到这一点已经很好.

git ls-files --other [--exclude-standard]
Run Code Online (Sandbox Code Playgroud)

Die*_*Epp 14

要么...

git clean -dnx | cut -c 14-
Run Code Online (Sandbox Code Playgroud)

如果您不想看到被忽略的文件,

git clean -dn | cut -c 14-
Run Code Online (Sandbox Code Playgroud)

  • @RyanLester:如果我们想对此进行迂腐,那么该行将无法列出名为“将删除”的文件(如果这样的文件存在并且未被跟踪)。除非您是故意的,否则不要使用“g”。 (2认同)

pla*_*rms 6

其实,如果你使用git clean-n--dry-run选项,它会打印出一个列表,它会删除未跟踪文件,有你与运行-f--force选项.添加-d标志包括空的目录或仅包含未跟踪文件的目录.

因此,您可以从git存储库中运行此命令:

$ git clean -dn
Run Code Online (Sandbox Code Playgroud)

得到这样的输出:

Would remove dir/untracked_file_1.txt
Would remove untracked_file_2.txt
Run Code Online (Sandbox Code Playgroud)

这里有一个额外的好处:它也尊重你的.gitignore文件,但是如果添加-X标志,它将只列出被忽略的文件.