Github将存储库更改为错误的语言

Github将存储库更改为错误的语言,git,github,repository,github-linguist,Git,Github,Repository,Github Linguist,我知道这没什么大不了的,但我喜欢我的Github语言多样化。我用Swift写了一个项目,当我提交时,它说它在目标C中 我认为这可能是因为解析框架是用Objective C编写的,它会检测到这一点,但是有没有办法更改主存储库页面上的显示语言?如 GitHub使用开放源代码确定用于语法突出显示和存储库统计的文件语言。 有些文件很难识别,有时项目包含的库文件和供应商文件比其主代码多 因此,您需要与进行检查以修复此情况 百分比是根据报告的每种语言的代码字节计算的。 如果酒吧正在报告一种您不期望的语言:

我知道这没什么大不了的,但我喜欢我的Github语言多样化。我用Swift写了一个项目,当我提交时,它说它在目标C中

我认为这可能是因为解析框架是用Objective C编写的,它会检测到这一点,但是有没有办法更改主存储库页面上的显示语言?

GitHub使用开放源代码确定用于语法突出显示和存储库统计的文件语言。
有些文件很难识别,有时项目包含的库文件和供应商文件比其主代码多

因此,您需要与进行检查以修复此情况

百分比是根据报告的每种语言的代码字节计算的。
如果酒吧正在报告一种您不期望的语言:

  • 单击统计栏中的语言名称,查看标识为该语言的文件列表
  • 如果你看到你没有写的文件,考虑把文件移到其中之一,或者用它来忽略它们。
  • 如果文件被错误分类,请搜索以查看是否有其他人已报告该问题。您可以添加的任何信息,特别是指向公共存储库的链接,都是有帮助的
  • 如果没有报告此错误分类的问题,并包括指向存储库的链接或正在错误分类的代码示例

2017年2月更新(一年后):

文章“”来自

在研究如何解决GitHub对项目语言的错误分类时,我发现解决方案非常简单,只需告诉GitHub忽略哪些文件即可

虽然您仍然希望将这些文件提交到GitHub,因此无法使用
.gitignore
文件,但您可以告诉GitHub的语言学家在
.gitattributes
文件中忽略哪些文件

这一行文件告诉GitHub忽略我的
static/
文件夹中的所有文件,该文件夹是为Flask应用程序存储CSS和其他资产的地方

图中确实说明了如何标记错误的语言。
例如:

将未编写的代码(如JavaScript库)检查到git repo中是一种常见做法,但这通常会增加项目的语言统计,甚至可能导致项目被标记为另一种语言
默认情况下,语言学家将
vendor.yml
中定义的所有路径视为vendored,因此不会将它们包含在存储库的语言统计信息中

对供应商或非供应商路径使用语言学家vendor属性


为了简单起见,让我分享一下我的步骤:

  • 将目录更改为项目根文件夹


  • 使用您选择的whaterver工具创建名为.gittributes的文件:

    touch.git属性

  • 按照说明编辑文件,告诉Github如何操作,例如:

    六、基本属性

    使用语言学家Vendor可以让Github“跳过”对此文件夹和子文件夹的检测:

    src/main/resources/static/*语言学家

    使用“语言学家文档”属性将路径标记为文档或取消标记为文档:

    项目文档/*语言学家文档

    或标记包含文档的单个文件

    documented\u code.rb语言学家文档=true

    这有点奇怪,但您也可以这样做——告诉Github将某些具有特定扩展名(例如.*.rb)的文件视为Java:

    *.rb language=Java

  • Git添加、提交,然后将其推送到Github,标签几乎会立即被更正


  • 我发现最简单的方法是在我的存储库的根文件夹中创建一个名为
    .gittributes
    的文件,并为其提供以下内容:

    * linguist-vendored
    *.js linguist-vendored=false
    

    这个例子告诉github/语言学家忽略所有文件,然后只查看.js文件。我的项目被列为HTML,因为HTML示例文件比JS文件大。这个文件为我修复了它,现在它被列为JavaScript,创建一个名为.gittributes的文件到您的项目根文件夹。添加
    {file_name}语言学家generated=true
    就可以做到这一点。就我而言

    mvnw.cmd linguist-generated=true
    mvnw linguist-generated=true
    

    为我工作。

    回答上述问题的专家EamonnM提供的解决方案在我的项目中起了作用,但有两件事很重要

  • 他的代码第二行开头的语言是你想要的语言,而不是你不喜欢的语言。记住要区分它

  • 您似乎无法在
    *
    之前键入任何空格。(例如,当我想将语言更改为swift时,我应该键入
    *。swift语言学家vendored=false
    。)


  • 我有一个在Objective-C中启动的项目,并完全更改为Swift(新项目,但在同一存储库目录中)。 Github一直将其标识为Objective-C,无论我在gitattributes中添加了什么。(以上所有解决方案)

    因此,如果jig已经启动,并且您确信所有项目都是一种语言,那么您可以从根本上说:


    只有这样才能解决问题:)

    在.gittributes文件中,只需告诉语言学家不要确定您不需要的文件语言即可

    忽略Javascript文件的示例

    *.js linguist-vendored
    

    用该属性替换.gittributes,它将所有文件重新分类为Java

     *.* linguist-language=Java
    

    通过在
    文件中使用以下属性,可以避免意外的语言检测(通过扩展名或项目子文件夹等):

    *.blade.php linguist-vendored
    
    语言统计中仅包括编程语言。不同类型的语言(如中所定义)是不“可检测”的,因此不包括在语言统计中

    使用
    语言学家属性标记或
    
     *.* linguist-language=Java
    
    *.cs linguist-detectable=true
    *.js linguist-detectable=false`
    *.html linguist-detectable=false
    *.xml linguist-detectable=false
    
    # add this two lines 
    *.* linguist-language=Swift
    
    project-docs/* linguist-documentation
    
    *.blade.php linguist-vendored