【发布时间】:2016-04-15 07:16:49
【问题描述】:
我知道这没什么大不了的,但我喜欢我的 GitHub 语言多样化。我在Swift 写了一个项目,当我提交它时说它在Objective-C。
我认为这可能是因为 Parse 框架是用 Objective-C 编写的,它会检测到这一点,但是有没有办法更改主存储库页面上的显示语言?
【问题讨论】:
标签: git github repository github-linguist
我知道这没什么大不了的,但我喜欢我的 GitHub 语言多样化。我在Swift 写了一个项目,当我提交它时说它在Objective-C。
我认为这可能是因为 Parse 框架是用 Objective-C 编写的,它会检测到这一点,但是有没有办法更改主存储库页面上的显示语言?
【问题讨论】:
标签: git github repository github-linguist
我发现最简单的方法是在我的存储库的根文件夹中创建一个名为 .gitattributes 的文件,并为其提供以下内容:
* linguist-vendored
*.js linguist-vendored=false
这个例子告诉 GitHub/Linguist 忽略所有文件,然后只查看 .js 文件。我的项目https://github.com/aim12340/jQuery-Before-Ready 被列为 HTML,因为 HTML 示例文件比 JavaScript 文件大。这个文件为我修复了它,现在它被列为 JavaScript。
【讨论】:
如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 月更新(一年后):
来自Monica Powell的文章“How to Change Repo Language in GitHub”
在研究如何解决 GitHub 错误分类项目语言的问题后,我发现解决方案就像告诉 GitHub 忽略哪些文件一样简单。
虽然您仍想将这些文件提交到 GitHub,因此无法使用
.gitignore您可以告诉 GitHub 的语言专家在.gitattributes文件中忽略哪些文件
static/* linguist-vendored
这个单行文件告诉 GitHub 忽略我的
static/文件夹中的所有文件,该文件夹是为 Flask 应用程序存储 CSS 和其他资产的位置
"Using .gitattributes" section 确实说明了如何标记错误的语言。
例如:
将您未编写的代码(例如 JavaScript 库)检查到您的 git 存储库中是一种常见的做法,但是 这通常会夸大您项目的语言统计数据,甚至可能导致您的项目被标记为另一种语言强>.
默认情况下,Linguist 将vendor.yml中定义的所有路径视为已售出,因此不会将它们包含在存储库的语言统计信息中。对供应商或非供应商路径使用 linguist-vendor 属性。
$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
【讨论】:
*.md liguist-detectableREADME.md -linguist-documentation@ 987654332@
为了简单起见,让我分享一下我的步骤:
将目录更改为您的项目根文件夹;
使用您选择的任何工具创建一个名为 .gitattributes 的文件:
touch .gitattributes
按照Linguist library的说明编辑文件,告诉GitHub怎么做,例如:
vi .gitattributes
使用 linguist-vendred 可以让 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
Git 添加、提交,然后将其推送到 GitHub。标签几乎会立即得到更正。
【讨论】:
*.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
【讨论】:
在文件夹的根目录中创建.gitattributes 文件。假设您希望语言是 Java,只需复制粘贴即可:
*.java linguist-detectable=true
*.js linguist-detectable=false
*.html linguist-detectable=false
*.xml linguist-detectable=false
在.gitattributes 文件中并将文件推送到存储库中。刷新您的 GitHub 页面以查看语言更改。
注意:所以,对于想要的语言,让它为真,其他的为假。它应该可以正常工作。
【讨论】:
您可以通过在您的.gitattributes 文件中使用GitHub linguist detectable option 来避免意外的语言检测(通过filename extension,或通过项目子文件夹等):
语言统计中仅包含编程语言。不同类型的语言(如
languages.yml中定义)不是“可检测的”,导致它们不包含在语言统计信息中。使用
linguist-detectable属性将路径标记或取消标记为可检测:*.kicad_pcb linguist-detectable=true *.sch linguist-detectable=true tools/export_bom.py linguist-detectable=false
【讨论】:
我有一个项目是在 Objective-C 中启动并完全更改为 Swift(新项目,但在同一个存储库目录中)。 无论我在文件 .gitattributes 中使用什么,GitHub 一直将其标识为 Objective-C(之前答案中的所有解决方案)。
所以,如果 jig 完成了,并且您确定所有项目都是一种语言 - 您从根本上添加:
# Direct Swift
*.* linguist-language=Swift
只有这样才能解决问题:)
【讨论】:
在 .gitattributes 文件中告诉语言学家不要确定你不想要的文件语言。
忽略 JavaScript 文件的示例:
*.js linguist-vendored
【讨论】:
如果您想更改 Laravel 存储库的语言,则将以下行添加到您的 .gitattributes 文件中:
*.blade.php linguist-vendored
GitHub 将 Blade 文件定义为 HTML,但 *.html linguist-vendored 不起作用。
【讨论】:
回答上述问题的专家 EamonnM 提供的解决方案在我的项目中有效,但有两点很重要。
他的代码第二行开头的语言是你想要的语言,而不是你不喜欢的语言。记得区分哦。
您似乎无法在* 之前键入任何空格。 (例如,当我想将我的语言更改为 Swift 时,我应该输入 *.swift linguist-vendored=false。)
【讨论】:
【讨论】:
答案很简单:
只需在项目终端中添加这些行
touch .gitattributes
编写此命令后,应该在项目资源管理器中找到文件 .gitattributes。如果此文件没有出现,请尝试显示隐藏文件以找到它。
*.* linguist-language=Java
用您的目标语言更改 Java - Swift 在您的情况下-
git add .
git commit -m "Change tagged language from Java to Kotlin"
git push
现在刷新 GitHub 页面后,您应该会发现新的更新。
【讨论】:
为您的项目根文件夹创建一个名为 .gitattributes 的文件。添加{file_name} linguist-generated=true 可以解决问题。就我而言,
mvnw.cmd linguist-generated=true
mvnw linguist-generated=true
为我工作。
【讨论】:
如果你想让你的 git 只检测 .java 文件,你可以使用:
*.java linguist-detectable=true
*.* linguist-detectable=false
. 表示不应将所有其他文件检测为语言。 对于那些想要检测超过 2 种语言的人,他们可以操作此文件。
【讨论】: