标题说明了一切。
举一个简单的例子:在时间t1,存储库包含扩展名为.A
和.B
的文件。在稍后的时间t2,我们决定向.B
文件添加.gitignore
个扩展名。我想列出目前处于版本控制范围内的扩展名为.B
的文件(不要删除它们,只是为了知道它们是否/在哪里)。
当然,在我的情况下,它不只是一个扩展名,而是添加到.gitignore
的许多不同模式。对于一般维护目的而言,它也是有用的东西。
注意:我对未受版本控制的被忽略文件不感兴趣,我知道您可以使用git status -i
列出这些文件。
答案 0 :(得分:2)
这应该可以为您完成工作,因为您提到文件已经受版本控制 - 如果它们是新的,那么只需将--others
添加到命令中。
git ls-files -i --exclude-standard
答案 1 :(得分:0)
您不必将它们添加到.giignore
,您也可以使用它:
指定此标志时,不会更新为路径记录的对象名称。
相反,此选项设置/取消设置"假设未更改"路径的位。
当"假设不变"如果位为on,则用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。当在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大项目时,这有时很有用。
如果需要在索引中修改此文件,Git将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。
如果您需要打印标有--assume-unchanged
标志的文件列表:
git ls-files -v|grep '^h'