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

时间:2015-09-02 07:56:41

标签: git gitignore

在特定的 utilities.jsx 下(在git存储库中),
我想要一个完整的文件列表:

  • 未被git攻击
  • 但git忽略(使用<directory>)。

有一种简单的方法吗?

请注意,虽然.gitignore确实列出了忽略的未跟踪文件,但 它无法列出git存储库中任何未跟踪的子目录中的实际文件。

1 个答案:

答案 0 :(得分:3)

是的,使用git ls-files

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

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

~/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)
  

使用 git ls-files -o --exclude-standard ,我们得到:

~/linux-stable$ git ls-files -o --exclude-standard 
kernel/untracked-dir/untracked-non-ignored-file.c
     

<强>即。未跟踪文件的实际列表(包括任何未跟踪目录中的文件)。