基于git manual:
-无空目录
不要列出空目录。没有--directory无效。
然后我认为 git ls-files --others
将列出空文件夹。
我的系统是带有git 1.8.3的centos 7.4
在仓库中测试如下:
[root@localhost www]# git status
# On branch test
nothing to commit, working directory clean
[root@localhost www]mkdir test12345
[root@localhost www]git ls-files --others
[root@localhost www]git status
# On branch test
nothing to commit, working directory clean
运行test12345
时似乎没有列出空文件夹git ls-files --others
。
我的问题:
1。git ls-files --others
时如何列出空文件夹?
2. --no-empty-directory
的用途是什么?
答案 0 :(得分:1)
您错过了该部分没有--directory无效。
git ls-files -o --directory
或
git ls-files -o --directory --no-empty-directory
但不是
git ls-files -o --no-empty-directory
答案 1 :(得分:1)
有一种“空目录”,即使使用--no-empty-directory
仍会列出:嵌套git存储库(gitlink条目,索引中的特殊gitdir条目)。
在Git 2.29(2020年第四季度)之前,“ ls-files -o
”处理了当前工作树中挂起的另一个git工作树的顶级目录。
请参见commit ab282aa的commit ed8268d,Elijah Newren (newren
)(2020年8月12日)。
(由Junio C Hamano -- gitster
--在commit 11f433f中合并,2020年8月24日)
dir
:避免过早将非裸存储库标记为匹配项报告人:克里斯蒂安w
简化的测试用例和二等分方法:Kyle Meyer
签名人:伊利亚·纽伦
非存储库是特殊目录。
与我们可能会递归到其中列出文件的普通目录不同,非裸仓库必须自己匹配,然后我们始终只报告非裸仓库目录本身,而不报告其任何内容。另外,当遍历目录以查找未跟踪或排除的文件时,我们通常会考虑匹配指定路径规范或不匹配它们的路径。
但是,
do_match_pathspec()
使用一个名为MATCHED_RECURSIVELY_LEADING_PATHSPEC
的特殊值,这意味着“此目录与任何pathspec不匹配,但可能在其下面有文件或目录。”
这个特殊的值使我们无法过早地认为某个目录及其下的所有内容都不相关,而且还使我们能够与“这是一个匹配项”区分开来。这两个特殊情况的组合以前未被发现。
在测试套件中添加一个测试以覆盖它,并确保如果最匹配的存储库是MATCHED_RECURSIVELY_LEADING_PATHSPEC
,则我们返回一个非匹配存储库作为不匹配项。