如何使用.gitattributes让Github显示回购的正确主要语言?

时间:2018-04-18 11:42:36

标签: git github gitattributes github-linguist

我用Python编写了一个程序,并使用Bootstrap作为它的前端。

当我在GitHub上传目录时,它显示该项目是90%的JavaScript,只有7.5%的Python。我知道这是因为Bootstrap文件夹中的JS目录而发生的。

我需要将Python显示为repo的主要项目语言。

我做了一些研究,并了解到将.gitattributes文件添加到项目中是一个解决方案,但我不知道在该文件中添加什么来让Github在评估主要语言时忽略JavaScript该项目。

我检查了official .gitattributes manual page,但找不到直接解决此问题的方法。

这是回购的样子

Repo screenshot

Link to Github repo

编辑:所有CSS和JS文件都在static/文件夹中,因此我在回购邮件中添加了.gitattributes文件,并在第一行添加了static/* linguist-vendored,但是回购仍然是将JS显示为该语言的90%。

2 个答案:

答案 0 :(得分:7)

官方gitattributes文档对此没有任何说明,因为它是GitHub特有的功能。 Git本身并不做语言统计。

GitHub使用名为Linguist的工具进行语言统计,并使用语言学家allows you to specify paths it should ignore using a custom linguist-vendored attribute

  

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

     

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

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

请注意此更改的效果can take some time to appear

  

当您将更改推送到GitHub.com上的存储库时,如上所述,将低优先级后台作业排入队列以分析您的存储库。此分析的结果将在存储库的生命周期中进行缓存,并且仅在更新存储库时更新。由于此分析由低优先级后台作业执行,因此语言统计栏可能需要一段时间(尤其是在繁忙时段)才能反映您的更改。

在你改变.gitattributes后,给GitHub一两天时间以便赶上。

答案 1 :(得分:-2)

@pchaigno在问题评论中提到的解决方案是在*.js linguist-vendored文件中添加行.gitattributes

This is the file now.

立即工作,现在我的回购没有显示JavaScript作为主要语言。