您如何git显示.gitignore中不存在的未跟踪文件


167

git status -u用来显示未跟踪的文件。在终端上,我看到了很多需要跟踪的未跟踪文件,例如单元测试,个人文档等。我将它们放在中.gitignore,但似乎git status仍然可以显示它们。

如何仅显示中不存在的未跟踪文件.gitignore


11
如果未跟踪的文件以git状态显示,则.gitignore不会正确忽略它们。您可以显示工作目录结构和.gitignore内容吗?
最长

7
同意@max,它应该可以工作。这是一个疯狂的猜测:如果您使用的是Windows,请注意,.gitignore与Windows不同,区分大小写。因此,如果您忽略* .txt并且磁盘上有Test.TXT,它将不会被忽略。
乔·怀特

Answers:


268

您可以按如下所示明确列出正在跟踪和未跟踪的内容,以查看Git是否看到并尊重您的.gitignore。如果您发布您的.gitignore内容,git status输出,dir或者ls我们可以更好地为您提供帮助。

列出忽略的文件

$ git ls-files . --ignored --exclude-standard --others

列出未跟踪的文件

$ git ls-files . --exclude-standard --others

3
如果您看到您不认为在.gitignore中的文件,则项目中可能还有另一个文件。用`查找来找出它。名称.gitignore`。
jpadvo 2013年

@ matthew-mccullough好答案!我将为这些感谢添加一些别名!@jpadvo您能举find方法使用的例子吗?
lacostenycoder

如果您想要一个简短的列表,比如说您忽略了node_modules并且不想看到整个树,请添加,--directory以便仅打印被忽略的顶级文件夹(这更接近git状态)。
亨利·布莱斯

2
为了清楚git ls-files --others --exclude-standard --ignored起见,列出了未跟踪的未忽略文件和git ls-files --others --exclude-standard未跟踪的未忽略文件。在这里更多。
x-yuri

1
请注意,默认情况下git ls-files --others不会列出空目录。要列出空目录,请添加--directory选项。这在手册页中并不明显,但可以推断出来。--directory如果整个目录都归类为“其他”,则仅显示其名称(带有斜杠),而不显示其全部内容。--no-empty-directory不要列出空目录。没有--directory无效。
catanman


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.