Github错误地识别项目中使用的编程语言

Loo*_*urr 21 c++ d github

所以我有一个用C++编写的git存储库,但是github坚持认为我正在使用D.为什么这样,并且有什么方法可以解决它?

sas*_*hka 13

Github使用它自己的语言解析模块,有时(实际上经常)它会产生错误.只需编写更多代码,以便解析器更容易选择主要语言,并在一段时间后github将其正确.

在这种特殊情况下,代码解析器被STMC-C/Assignments/a*dirs中带有.d扩展名的文件所欺骗.这是D源的扩展.这个源的数量在你的项目中占主导地位,所以github决定使用的主要编程语言是D.

编辑:刚刚找到这个公共仓库(github语言检测器) - 它有一些系统的解释.

  • @Loourr一个简单的find/cat/wc显示你的`.d`在你的存储库中是160259行,总共163404行.你有8个`.``文件,每个文件包含20000行,比你的C++代码要大得多.(是的,我意识到那些`.d`文件不包含代码.) (8认同)
  • @hvd好点,我想我会做的仅仅是他们所有添加到我的`.gitignore`文件,因为反正那里产生的所有计算机 (3认同)

And*_*kha 5

您可以创建一个文件.gitattributes来设置 GitHub 的 Linguist overrides

要将 C++ 文件设置为按扩展名检测为 C++:

*.h linguist-language=C++
*.cpp linguist-language=C++
Run Code Online (Sandbox Code Playgroud)

要忽略生成的文件并且不在差异中显示它们:

generated/*.d linguist-generated=true
Run Code Online (Sandbox Code Playgroud)

此外,如果某些语言不在已知语言列表中,您可以将某些文件标记为不可检测:

*.t linguist-detectable=false
Run Code Online (Sandbox Code Playgroud)