Github显示4%的存储库使用的是未在存储库中使用的语言

时间:2016-12-12 21:20:48

标签: github github-linguist

我在GitHub上有一个完全用C#编写的个人存储库,包含一些XML配置文件和一些来自NuGet包的PowerShell文件。在主存储库页面上,GitHub显示一个彩色条,显示存储库中使用的不同语言的细分 enter image description here

如果单击此栏,则会显示语言名称和实际百分比。 enter image description here

这种特殊的语言故障对我来说有点奇怪,因为我是唯一的贡献者,而且我从未使用过Smalltalk。

如果单击语言名称,它将显示使用该语言的文件列表。 enter image description here

在最后一张图片中,您可以在左侧看到存储库实际上只包含C#,XML,PowerShell,文本和markdown文件。

那为什么GitHub认为我使用的是Smalltalk?为什么我没有提到我使用XML?

3 个答案:

答案 0 :(得分:2)

GitHub使用启发式方法来识别存储库的语言。底层库是linguist。错误分类很常见,它是最重要的故障排除部分:My repository is detected as the wrong language

答案 1 :(得分:1)

由于GitHub正在使用linguist来检测语言,因此您可以打开PR来报告一些错误标记为“Smalltalk”的文件。

例如,issue 2012仍然有效(即使它已关闭)。

答案 2 :(得分:1)

正如Philip和VonC所说,GitHub使用Linguist来计算语言统计数据。

那么为什么GitHub认为我使用的是Smalltalk?

Linguist首先依赖文件扩展名来确定文件的语言。然后,它使用一组refinement strategies用于冲突扩展(例如,Smalltalk和C#都使用.cs)。这些细化策略并非100%准确(对于小文件甚至可能非常糟糕)。因此,扩展冲突的文件可能被错误分类。

我该如何解决?

您可以使用Linguist overrides告诉Linguist您的存储库中的所有.cs文件都是带有gitattributes文件的C#:

*.cs linguist-language=C#

为什么我的颜色栏没有提到我使用XML?

语言学家只统计统计中的编程标记语言。 XML归类为a data language

为什么Smalltalk不会出现在搜索结果中?

缓存搜索结果以避免每次访问页面时都对其进行计算。当你拍摄截图时,它们可能不是最新的。