我正在尝试获取未跟踪文件的列表以便以编程方式使用。
但是我似乎无法让 git 报告未跟踪目录中的未跟踪文件。它始终只列出包含文件的最低级别目录。
我试过了:
git status --untracked-files=all
Run Code Online (Sandbox Code Playgroud)
和
git ls-files --others --exclude-standard
Run Code Online (Sandbox Code Playgroud)
暂存目录中的任何文件都会使 git 报告目录中的所有其他文件,但我真的不想这样做。
另外,我可以使用 bash 列出所有文件 - 但随后我必须让 git 告诉我哪些文件被 gitignored。
有没有办法纯粹用git来做到这一点?或者以其他方式使用其他工具来实现此目的的有效方法?
\n\nGit 不会扩展未跟踪的文件夹,这些文件夹也是 Git 存储库
\n
这些被称为“嵌套 Git 存储库”,并在 Git 存储库中记录为gitlinks,这是父存储库索引中的一个特殊条目。
\n由于它们是一个条目(一种特殊的“文件”),因此它们不会关心-untracked-files=all.
请注意,如果您确实使用-untracked-files=all,请与 Git 2.38(2022 年第 3 季度)一起使用,其中修复了 2.37 中引入的导致 write-tree 无法将不存在的索引写为树的错误。
请参阅Martin \xc3\x85gren ( )的提交 4447d41(2022 年 7 月 22 日)。\n (由Junio C Hamano 合并 -- --在提交 f1a0db2中,2022 年 8 月 3 日)nonegitster
\n\n\n
read-cache:do_read_index()始终设置istate->repo报告人:Joey Hess
\n
\n签署人:Martin \xc3\x85gren
\n\n如果没有索引文件,例如,因为存储库刚刚创建,我们会提前返回零(除非
\nmust_exist让我们死掉)。这种提前返回意味着我们不成立
\nistate->repo。
\n使用core.untrackedCache=true,最近的e6a6535 ("untracked-cache: support \'--untracked-files=all\' ifconfigured", 2022-03-31, Git v2.37 -- mergeistate->repo) 最终将作为空指针传递给repo_config_get_string(),导致分段错误。\n
istate->repo如果我们确实达到了这个早期回报,请像我们实际读取索引时那样进行设置。
| 归档时间: |
|
| 查看次数: |
6274 次 |
| 最近记录: |