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

时间:2016-01-11 03:26:50

标签: git github repository

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

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

14 个答案:

答案 0 :(得分:73)

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

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

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

答案 1 :(得分:48)

正如GitHub help page

中所述
  

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

因此,您需要查看github/linguist#troubleshooting以解决此问题。

  

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

     
      
  • 点击统计栏中的语言名称,查看标识为该语言的文件列表。
  •   
  • 如果您看到未写入的文件,请考虑将文件移至paths for vendored code之一,或使用manual overrides feature忽略它们。
  •   
  • 如果文件被错误分类,请搜索open issues以查看是否有其他人已报告此问题。您可以添加的任何信息,特别是指向公共存储库的链接,都是有帮助的。
  •   
  • 如果没有报告此错误分类的问题,open an issue并包含指向存储库的链接或错误分类的代码示例。
  •   

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

来自How to Change Repo Language in GitHub

的文章“ Monica Powell
  

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

     

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

static/* linguist-vendored
  

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

"Using .gitattributes" section确实说明了如何标记错误的语言 例如:

  

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

     

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

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false

答案 2 :(得分:23)

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

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

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

      

    触摸.gitattributes

  3. 按照Linguist library说明编辑文件,告诉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,标签几乎会立即得到纠正。

答案 3 :(得分:5)

在文件夹的根目录中创建.gitattributes文件。假设您要使用Java语言,只需复制粘贴

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

.gitattributes文件中,然后将该文件推送到存储库中。刷新GitHub页面以查看语言更改。

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

答案 4 :(得分:3)

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

 *.* linguist-language=Java

linguist

答案 5 :(得分:2)

如果要更改Laravel存储库的语言,请在您的.gitattributes文件中添加以下行:

*.blade.php linguist-vendored

GitHub将刀片文件定义为html,但是*.html linguist-vendored不起作用。

答案 6 :(得分:1)

在.gitattributes文件中,只是告诉语言学家不要确定您不需要的文件语言。

忽略Javascript文件的示例。

*.js linguist-vendored

答案 7 :(得分:1)

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

  

语言统计信息中仅包含编程语言。无法检测到其他类型的语言(如languages.yml中定义的语言),导致它们不包含在语言统计信息中。

     

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

*.kicad_pcb linguist-detectable=true
*.sch linguist-detectable=true
tools/export_bom.py linguist-detectable=false

答案 8 :(得分:0)

创建名为.gitattributes的文件到项目根文件夹。添加{file_name} linguist-generated=true可以解决问题。就我而言,

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

为我工作。

答案 9 :(得分:0)

由专家EamonnM提供的解决方案在我的项目中奏效,上面回答了这个问题,但是有两点很重要。

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

  2. 似乎您无法在*之前输入任何空格。 (例如,当我要将语言更改为快速语言时,我应该输入*.swift linguist-vendored=false。)

答案 10 :(得分:0)

我有一个项目是从Objective-C开始的,然后完全更改为Swift(新项目,但在相同的存储库目录中)。 无论我在gitattributes中添加了什么,Github始终将其标识为Objective-C。 (以上所有解决方案)

因此,如果夹具已经安装好,并且您确定所有项目都是一种语言,则可以从根本上说:

enter image description here

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

答案 11 :(得分:0)

我对此也有疑问。我在项目的根目录下创建了.gitattributes。我删除了.js和.cs,但.html仍然存在。这是我的.gitattributes:

*.cs linguist-detectable=true
*.js linguist-detectable=false`
*.html linguist-detectable=false
*.xml linguist-detectable=false

当我添加*语言供应商时,我在GitHub上看不到任何东西。

感谢您的帮助。

enter image description here

答案:

还是一样,仍然显示.html

答案 12 :(得分:0)

答案很简单:

只需在您的项目终端中添加这些行

  1. source SOURCE_URL pod YourSdkName 编写此命令后,应找到此文件-.gitattributes-,如果未出现此文件,请尝试显示隐藏文件以找到它。
  2. touch .gitattributes 使用您的目标语言更改Java-视情况而定-
  3. *.* linguist-language=Java
  4. git add .
  5. git commit -m "Change Tagged language from Java to Kotlin" 现在,在刷新Github页面之后,您应该找到新的更新。

答案 13 :(得分:-1)

# add this two lines 
*.* linguist-language=Swift

project-docs/* linguist-documentation