如何在git存储库中找到未跟踪(和未忽略)文件的完整列表?

如何在git存储库中找到未跟踪(和未忽略)文件的完整列表?,git,gitignore,Git,Gitignore,在特定的下(在git存储库中), 我需要以下文件的完整列表: 未被git跟踪 但是不被git忽略(使用.gitignore) 有没有一个简单的方法可以做到这一点 请注意,git status会列出未被忽略的未跟踪文件, 它无法列出git存储库中任何未跟踪子目录中的实际文件。是,通过使用git ls files git ls-files -o --exclude-standard [directory] -o显示输出中的其他(即未跟踪)文件 --排除标准添加标准Git排除 从每个目录中的.

在特定的
下(在git存储库中),
我需要以下文件的完整列表:

  • 未被git跟踪
  • 但是不被git忽略(使用
    .gitignore
有没有一个简单的方法可以做到这一点

请注意,
git status
会列出未被忽略的未跟踪文件,

它无法列出git存储库中任何未跟踪子目录中的实际文件。

是,通过使用
git ls files

git ls-files -o --exclude-standard [directory]
  • -o显示输出中的其他(即未跟踪)文件
  • --排除标准添加标准Git排除
    从每个目录中的
    .gitignore
    .git/info/exclude
    ~/.gitignore\u global

下面是一个示例git存储库,其中包含2个新的未跟踪本地文件。它们都位于新添加的未跟踪目录中。其中一个未跟踪的文件与
.gitignore
中指定的模式
*.o
匹配

~/linux-stable$ ls -lR kernel/untracked-dir/
kernel/untracked-dir/:
total 8
-rw-rw-r-- 1 cvs cvs 7 Sep  2 18:46 untracked-ignored-file.o
-rw-rw-r-- 1 cvs cvs 7 Sep  2 18:46 untracked-non-ignored-file.c
运行
git status
只列出新的未跟踪子目录,而不是其中的单个文件

~/linux-stable$ git status kernel/
On branch master
Your branch is up-to-date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)

kernel/untracked-dir/

nothing added to commit but untracked files present (use "git add" to track)
即未跟踪文件的实际列表(包括任何未跟踪目录中的文件)。


看起来您几乎同时发布了一个问题及其答案。如果你有兴趣在StActFoobe上记录文档,请考虑加入。我想回答你自己的问题是一个被鼓励的行为。我仍然认为这适合stackoverflow的QA格式。此外,我还不太清楚我是如何找到“文档”的。正如我在前面的评论中所链接的“元问题”中详细说明的那样,无意冒犯,请注册为的公测版。它的目标是成为“下一件大事”,提交/维护这些有用的清晰信息,以避免代码/命令变得晦涩难懂。如果我看不到以前注册的内容,我不喜欢注册。Fx我注册到stackoverflow,因为这是我在搜索问题答案时结束的,我在注册前在此处找到了答案。可能的重复项不是重复项,因为该问题要求显示忽略的文件,而该问题要求显示未忽略的文件(未跟踪)。嗯。。。好啊误读了问题。撤回了我的重复投票。让我感到不安的是,这个问题最初似乎是一个被误解的例子,你自己马上就回答了。我为第一次没有正确阅读而道歉。增加了一些细节;希望它能澄清问题和回答。
~/linux-stable$ git ls-files -o --exclude-standard 
kernel/untracked-dir/untracked-non-ignored-file.c