如何在 git 存储库中找到未跟踪(和未忽略)文件的完整列表?
How to find a complete list of untracked (and non-ignored) files within a git repository?
在特定的 <directory>
下(在 git 存储库中),
我想要一份完整的文件列表:
- 未被 git
追踪
- 但是没有被git忽略(使用
.gitignore
)。
有没有简单的方法来做到这一点?
请注意,虽然 git status
确实列出了 未 忽略的未跟踪文件,
它无法列出 git 存储库中任何未跟踪的子目录中的实际文件。
是的,通过使用 git ls-files
。
git ls-files -o --exclude-standard [directory]
- -o 在输出中显示其他(即未跟踪的)文件
- --exclude-standard 添加标准 Git exclusions
从每个目录中的 .gitignore
,.git/info/exclude
和 ~/.gitignore_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)
Whereas using git ls-files -o --exclude-standard
, we get :
~/linux-stable$ git ls-files -o --exclude-standard
kernel/untracked-dir/untracked-non-ignored-file.c
i.e. the actual list of untracked-files (including the ones within any untracked directories).
在特定的 <directory>
下(在 git 存储库中),
我想要一份完整的文件列表:
- 未被 git 追踪
- 但是没有被git忽略(使用
.gitignore
)。
有没有简单的方法来做到这一点?
请注意,虽然 git status
确实列出了 未 忽略的未跟踪文件,
它无法列出 git 存储库中任何未跟踪的子目录中的实际文件。
是的,通过使用 git ls-files
。
git ls-files -o --exclude-standard [directory]
- -o 在输出中显示其他(即未跟踪的)文件
- --exclude-standard 添加标准 Git exclusions
从每个目录中的.gitignore
,.git/info/exclude
和~/.gitignore_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)
Whereas using
git ls-files -o --exclude-standard
, we get :~/linux-stable$ git ls-files -o --exclude-standard kernel/untracked-dir/untracked-non-ignored-file.c
i.e. the actual list of untracked-files (including the ones within any untracked directories).