我已经阅读了相关的SO帖子here和here以及Github Linguist manual override,但我似乎无法排除某些顶级目录语言统计。
在目前的最新版本中,this repo显示了HTML代码的优势。单击HTML详细信息,列出了两个HTML文件:
包/ NUnit.2.5.7.10213 / NUnitFitTests.html
最后编入索引于2016年12月30日。
包/ NUnit.2.5.7.10213 /工具/ NUnitFitTests.html
最后编入索引于2016年12月30日。
但这些应该是.gitattributes
中排除路径的一部分:
.nuget/* linguist-vendored
libs/* linguist-vendored
NUnit.Runners.2.6.4/* linguist-vendored
packages/* linguist-vendored §§ <--- this one in particular
RubyInstallationFiles/* linguist-vendored
但是在相同的详细信息页面中,左下方的排名清楚地显示了较低位置的HTML,而C#位于顶部:
我做错了什么?
附带问题:在众多更改中,我还从.gitattribute文件中删除了注释,因为我无法从任何引用中找到这些注释是否允许或者是什么。有谁知道你是否可以在那里发表评论?哪种格式? TA
答案 0 :(得分:4)
您可以使用git-check-attr
检查属性,并验证它们是否按您认为的方式进行设置。
$ git check-attr --all -- packages/NUnit.2.5.7.10213/NUnitFitTests.html
$
似乎它没有属性。问题似乎是packages/*
不是递归的。
$ git check-attr --all -- packages/NUnit.2.5.7.10213/
packages/NUnit.2.5.7.10213/: linguist-vendored: set
那么模式的规则是什么?与gitignore相同。
模式匹配路径的规则与.gitignore文件中的规则相同;见gitignore(5)。与.gitignore不同,禁止使用负面模式。
您正在寻找的是/**
。
尾随&#34; / **&#34;匹配里面的一切。例如,&#34; abc / **&#34;匹配目录&#34; abc&#34;内的所有文件,相对于.gitignore文件的位置,具有无限深度。
将修复程序放入......
$ cat .gitattributes
.nuget/** linguist-vendored
libs/** linguist-vendored
NUnit.Runners.2.6.4/** linguist-vendored
packages/** linguist-vendored
RubyInstallationFiles/** linguist-vendored
现在我们很好。
$ git check-attr --all packages/NUnit.2.5.7.10213/NUnitFitTests.html
packages/NUnit.2.5.7.10213/NUnitFitTests.html: linguist-vendored: set
这也回答了你关于评论的问题......
以#开头的行作为评论。对于以散列开头的模式,在第一个散列前加一个反斜杠(&#34; \&#34;)。
答案 1 :(得分:1)
有几件事情可以发生:
语言统计信息尚未更新语言检测作业作为低优先级后台作业运行。语言统计可能需要一些时间才能更新(最多一天)。
您错过了一些HTML文件显示每种语言文件的搜索结果都已缓存,并不总是最新的。因此,您的存储库中可能存在一些您忘记供应商的HTML文件。
如何调试?您最好的选择是在本地运行Linguist。如果你有一个working Ruby environment,这很简单:
gem install github-linguist
linguist /path/to/your/repository --breakdown
此命令将输出Linguist结果,其中包含为每种语言检测到的文件和计算的百分比。
注意:您的.gitattributes
语法是正确的,无需加倍星号。语言学家的路径末尾不需要双星号。但是,您可能需要它们在通配路径的开头匹配多个目录,例如:
**/NSpec/Domain/Formatters/Templates/*