gpt4 book ai didi

bash - 我怎样才能让 git 递归地列出所有未跟踪的文件?

转载 作者:太空狗 更新时间:2023-10-29 14:16:38 25 4
gpt4 key购买 nike

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

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

我试过:

git status --untracked-files=all

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

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

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

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

最佳答案

Git doesn't expand untracked folders which are also Git repositories

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

因为它们是一个条目(一种特殊的"file"),所以它们不会关心 -untracked-files=all


请注意,如果您确实使用了 -untracked-files=all,请将其与 Git 2.38(2022 年第 3 季度)一起使用,其中修复了导致 write-tree 无法写出的错误一个不存在的索引作为树,在 2.37 中引入。

参见 commit 4447d41 (2022 年 7 月 22 日)Martin Ågren (none) .
(由 Junio C Hamano -- gitster -- merge 于 commit f1a0db2 ,2022 年 8 月 3 日)

read-cache: make do_read_index() always set up istate->repo

Reported-by: Joey Hess
Signed-off-by: Martin Ågren

If there is no index file, e.g., because the repository has just been created, we return zero early (unless must_exist makes us die instead.)

This early return means we do not set up istate->repo.
With core.untrackedCache=true, the recent e6a6535 ("untracked-cache: support '--untracked-files=all' if configured", 2022-03-31, Git v2.37 -- merge) will eventually pass down istate->repo as a null pointer to repo_config_get_string(), causing a segmentation fault.

If we do hit this early return, set up istate->repo similar to when we actually read the index.

关于bash - 我怎样才能让 git 递归地列出所有未跟踪的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51848552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com