我在GitHub上有一个完全用C#编写的个人存储库,包含一些XML配置文件和一些来自NuGet包的PowerShell文件。在主存储库页面上,GitHub显示一个彩色条,显示存储库中使用的不同语言的细分
这种特殊的语言故障对我来说有点奇怪,因为我是唯一的贡献者,而且我从未使用过Smalltalk。
在最后一张图片中,您可以在左侧看到存储库实际上只包含C#,XML,PowerShell,文本和markdown文件。
那为什么GitHub认为我使用的是Smalltalk?为什么我没有提到我使用XML?
答案 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不会出现在搜索结果中?
缓存搜索结果以避免每次访问页面时都对其进行计算。当你拍摄截图时,它们可能不是最新的。