未从Github语言统计信息中排除的路径
我已经读过相关的SO线程和,以及Github语言学家,但我似乎无法从语言统计中排除一些顶级目录 在其最新版本中,显示了HTML代码的优势。单击HTML详细信息,将列出两个HTML文件:未从Github语言统计信息中排除的路径,github,github-linguist,Github,Github Linguist,我已经读过相关的SO线程和,以及Github语言学家,但我似乎无法从语言统计中排除一些顶级目录 在其最新版本中,显示了HTML代码的优势。单击HTML详细信息,将列出两个HTML文件: 软件包/NUnit.2.5.7.10213/nunitfitts.html 上次索引日期为2016年12月30日 软件包/NUnit.2.5.7.10213/Tools/NUnitFitTests.html 上次索引日期为2016年12月30日 但是这些应该是.gittributes中排除路径的一部分: .n
- 软件包/NUnit.2.5.7.10213/nunitfitts.html
上次索引日期为2016年12月30日 - 软件包/NUnit.2.5.7.10213/Tools/NUnitFitTests.html
上次索引日期为2016年12月30日
.gittributes
中排除路径的一部分:
.nuget/* linguist-vendored
libs/* linguist-vendored
NUnit.Runners.2.6.4/* linguist-vendored
packages/* linguist-vendored §§ <--- this one in particular
RubyInstallationFiles/* linguist-vendored
.nuget/*语言学家
libs/*语言学家vendored
NUnit.Runners.2.6.4/*语言学家vendored
packages/*语言学家vendored§§您可以使用检查属性,并验证它们是否按您认为的方式设置
$ 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文件中的规则相同;见上文第(5)段。与.gitignore不同,负面模式是被禁止的
你要找的是/**
尾随“/**”匹配内部的所有内容。例如,“abc/**”匹配目录“abc”中相对于.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
这也回答了你关于评论的问题
以#开头的一行用作注释。对于以哈希开头的模式,在第一个哈希前面加一个反斜杠(\)
可能会发生以下几件事:
尚未更新语言统计信息语言检测作业作为低优先级后台作业运行。语言统计信息可能需要一些时间更新(最多一天)
您丢失了一些HTML文件。搜索结果显示每种语言的文件都被缓存,并且不总是最新的。因此,您的存储库中可能有一些您忘记向供应商提供的HTML文件
如何调试?您最好的选择是在本地运行语言学家。如果您有一个,这很简单:
gem install github-linguist
linguist /path/to/your/repository --breakdown
此命令将输出语言学家结果,其中包含针对每种语言检测到的文件和计算出的百分比
注意:您的.gittributes
语法正确,无需将星号加倍。对于语言学家来说,在道路的尽头不需要双星号。但是,您可能需要它们匹配通配符路径开头的多个目录,例如:
**/NSpec/Domain/Formatters/Templates/*
我懂了。不知道它与.gitignore
共享相同的glob语法。我现在觉得很困惑,在所有示例中,文档只显示一个*
。另外,我不知道git check attr
命令,谢谢。对于语言学家来说,在路径的末尾实际上不需要双星号。@pchaigno不是语言学家做出的决定,而是git。Git应用这些属性。语言学家问Git文件具有什么属性。如果没有双星号,则不会应用属性。“将.gittributes文件添加到项目中,并对要覆盖的文件使用标准git样式的路径匹配器,以设置语言学家文档、语言学家语言、语言学家供应商和语言学家生成。”我对文档的解释与您相同,但是在使用.gitignore
和特定于语言学家的属性进行测试后,它看起来像路径末尾的单个*
被解释为与**
完全相同。我错过什么了吗?文档是否不正确(特别是“注意/*-如果没有斜杠,通配符也会排除foo/bar中的所有内容”)?@pchaigno我在中尝试了packages/*Linguaster Vendor
和packages/Linguaster Vendor
。gittributes
和git check attr--all--packages/NUnit.2.5.7.10213/nunitfitts.html
没有返回任何带有git
2.13.1的内容。我没有经营语言学家。请注意,.gitignore
已经在忽略**/packages/*
。