首页 > 解决方案 > 如何让 git 递归列出所有未跟踪的文件?

问题描述

我正在尝试获取以编程方式使用的未跟踪文件列表。

但是我似乎无法让 git 报告未跟踪目录中的未跟踪文件。它总是只列出包含文件的最低级别的目录。

我试过了:

git status --untracked-files=all

git ls-files --others --exclude-standard

暂存目录中的任何文件会使 git 报告目录中的所有其他文件,但我真的不想这样做。

此外,我可以使用 bash 列出所有文件 - 但是我必须让 git 告诉我其中哪些是 gitignored。

有没有办法纯粹用 git 来做到这一点?或者以其他方式使用其他工具执行此操作的有效方法?

标签: bashgit

解决方案


Git 不会扩展未跟踪的文件夹,这些文件夹也是 Git 存储库

这些被称为“嵌套的 Git 存储库”,并以gitlinks的形式记录在 Git 存储库中,这是父存储库索引中的一个特殊条目。

由于它们是一个条目(一种特殊的“文件”),它们不会关心-untracked-files=all.


推荐阅读