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

Ech*_*zle 78 git github repository github-linguist

我知道这不是一个大问题,但我喜欢我的Github在语言上多元化.我在Swift中编写了一个项目,当我提交时,它表示它在Objective C中.

我想这可能是因为Parse框架是用Objective C编写的,它检测到了,但有没有办法改变主存储库页面上的显示语言?

Eam*_*nnM 94

我发现最简单的事情是在我的存储库的根文件夹中创建一个名为.gitattributes的文件,并给它们这些内容:

* linguist-vendored
*.js linguist-vendored=false
Run Code Online (Sandbox Code Playgroud)

这个例子告诉github/linguist忽略所有文件,然后只看一下.js文件.我的项目https://github.com/aim12340/jQuery-Before-Ready被列为HTML,因为HTML示例文件比JS文件大.这个文件为我修复了,现在它被列为JavaScript

  • 也许是一个伪评论,但如果您想知道具体该怎么做,请遵循@Gob00st 评论中的指导,以及 2. 将“.js”替换为您的主要语言文件的扩展名。 (5认同)
  • 只需在repo根文件夹下创建一个新的.gitattributes文件,其中包含以上内容,即时修复! (4认同)

Von*_*onC 56

GitHub帮助页面中所述

GitHub使用开源Linguist库来确定语法高亮和存储库统计信息的文件语言.
某些文件很难识别,有时项目包含的库和供应商文件多于其主要代码.

因此,您需要检查github/linguist#troubleshooting以解决这种情况.

百分比是根据List Languages API报告的每种语言的代码字节计算的.
如果该栏报告您不期望的语言:

  • 单击统计栏中的语言名称,以查看标识为该语言的文件列表.
  • 如果您看到未编写的文件,请考虑将文件移动到销售代码的其中一个路径中,或使用手动覆盖功能忽略它们.
  • 如果文件被错误分类,请搜索未解决的问题以查看是否有其他人已报告此问题.您可以添加的任何信息,尤其是公共存储库的链接,都是有帮助的.
  • 如果没有报告此错误分类的问题,请打开一个问题并包含指向存储库的链接或错误分类的代码示例.

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

莫妮卡鲍威尔的文章" 如何改变GitHub中的回购语言 "

在研究如何解决GitHub错误分类项目语言时,我发现解决方案就像告诉GitHub要忽略哪些文件一样简单.

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

static/* linguist-vendored
Run Code Online (Sandbox Code Playgroud)

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

"使用.gitattributes"部分确实说明了如何标记错误的语言.
例如:

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

将linguist-vendored属性用于供应商或非供应商路径.

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
Run Code Online (Sandbox Code Playgroud)


小智 27

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

  1. 将目录更改为项目根文件夹;

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

    触摸.gitattributes

  3. 按照Linguist库的说明编辑文件,告诉Github如何操作,例如:

    vi .gitattributes

    使用linguist-vendored可以让Github"跳过"检测这个文件夹和子文件夹:

    src/main/resources/static/* linguist-vendored

    使用linguist-documentation属性将路径标记或取消标记为文档:

    project-docs/* linguist-documentation

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

    documented_code.rb linguist-documentation=true

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

    *.rb linguist-language=Java

  4. Git添加,提交然后将其推送到Github,标签几乎会立即得到纠正.

  • 为我工作,我在 .gitattributes 文件中添加了以下几行 `*.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-出售` (2认同)

Sum*_*mit 10

以此替换您的.gitattributes,它将所有文件重新分类为Java。

 *.* linguist-language=Java
Run Code Online (Sandbox Code Playgroud)

语言学家


小智 5

您可以通过在文件中使用GitHub linguist 可检测选项来避免意外的语言检测(通过文件扩展名或项目子文件夹等):.gitattributes

语言统计中仅包含编程语言。不同类型的语言(如 中所定义languages.yml)是不可“检测到的”,导致它们不包含在语言统计中。

使用该linguist-detectable属性将路径标记或取消标记为可检测:

*.kicad_pcb linguist-detectable=true
*.sch linguist-detectable=true
tools/export_bom.py linguist-detectable=false
Run Code Online (Sandbox Code Playgroud)


Sai*_*qui 5

在文件夹的根目录中创建.gitattributes文件。假设您希望该语言为Java,只需复制粘贴即可

*.java linguist-detectable=true *.js linguist-detectable=false *.html linguist-detectable=false *.xml linguist-detectable=false

在.gitattributes文件中将其推送到仓库中,刷新GitHub页面以查看语言更改。

注意:因此,对于所需的语言,请使其为true,其他为false。应该可以正常工作