我知道这没什么大不了的,但是我喜欢我的 GitHub 在语言上多样化。我写了一个项目在 斯威夫特和当我提交它说它在 目标 C。
我认为这可能是因为 Parse 框架是用 Objective-C 编写的,它能够检测到这一点,但是有没有办法改变主存储库页面上的显示语言呢?
正如 GitHub 帮助页面中提到的
GitHub 使用开源的 语言学图书馆来确定语法突显和存储库统计数据的文件语言。 有些文件很难识别,有时项目包含的库和供应商文件比其主要代码多。
因此,您需要检查与 github/linguist#troubleshooting为了解决这种情况。
github/linguist#troubleshooting
百分比是根据 列出语言 API报告的每种语言的代码字节计算的。 如果酒吧报告了一种你意想不到的语言: 单击统计栏中的语言名称,查看标识为该语言的文件列表。 如果您看到没有编写的文件,可以考虑将这些文件移动到 供应代码的路径中的一个,或者使用 手动控制功能手动控制功能忽略它们。 如果文件被错误分类,搜索 悬而未决的问题看看是否有其他人已经报告了这个问题。您可以添加的任何信息,特别是公共存储库的链接,都是有用的。 如果没有这种错误分类的报告问题,则 打开一个问题并包含到存储库的链接或被错误分类的代码的示例。
百分比是根据 列出语言 API报告的每种语言的代码字节计算的。 如果酒吧报告了一种你意想不到的语言:
2017年2月更新(一年后) :
来自 莫妮卡 · 鲍威尔的文章“ 如何在 GitHub 中改变回购语言”
通过研究如何解决 GitHub 对项目语言的错误分类,我发现解决方案就像告诉 GitHub 忽略哪些文件一样简单。 虽然您仍然希望将这些文件提交到 GitHub,因此不能使用 .gitignore 您可以告诉 GitHub 的语言学家在 .gitattributes文件中忽略哪些文件
通过研究如何解决 GitHub 对项目语言的错误分类,我发现解决方案就像告诉 GitHub 忽略哪些文件一样简单。
虽然您仍然希望将这些文件提交到 GitHub,因此不能使用 .gitignore 您可以告诉 GitHub 的语言学家在 .gitattributes文件中忽略哪些文件
.gitignore
.gitattributes
static/* linguist-vendored
这个只有一行的文件告诉 GitHub 忽略我的 static/文件夹中的所有文件,这个文件夹中存储了用于 Flask 应用程序的 CSS 和其他资产
static/
“使用 .gitattributes”部分的确说明了如何标记错误的语言。 例如:
将没有编写的代码(如 JavaScript 库)检查到 git repo 中是一种常见的做法,但 这常常会夸大项目的语言统计数据,甚至可能导致项目被标记为另一种语言。 默认情况下,Languist 将 vendor.yml中定义的所有路径视为供应商提供的,因此不将它们包含在存储库的语言统计数据中。 将语言学家供应商属性用于供应商或非供应商路径。
将没有编写的代码(如 JavaScript 库)检查到 git repo 中是一种常见的做法,但 这常常会夸大项目的语言统计数据,甚至可能导致项目被标记为另一种语言。 默认情况下,Languist 将 vendor.yml中定义的所有路径视为供应商提供的,因此不将它们包含在存储库的语言统计数据中。
vendor.yml
将语言学家供应商属性用于供应商或非供应商路径。
$ cat .gitattributes special-vendored-path/* linguist-vendored jquery.js linguist-vendored=false
为了简单起见,让我分享一下我的步骤:
将目录更改为项目根文件夹;
使用您选择的任何工具创建一个名为 。 gittribute的文件:
touch .gitattributes
按照 语言学图书馆指令编辑文件,告诉 GitHub 如何编辑,例如:
vi .gitattributes
使用语言学家供应商可以让 GitHub 知道“跳过”这个文件夹和子文件夹的检测:
src/main/resources/static/* linguist-vendored
使用 Language-document 属性将路径标记为文档或取消标记为文档:
project-docs/* linguist-documentation
或标记包含文档的单个文件
documented_code.rb linguist-documentation=true
这有点奇怪,但是您也可以这样做——告诉 GitHub 处理一些具有特定扩展名的文件(例如 *)。Rb)作为 Java:
*.rb linguist-language=Java
Git 添加,提交,然后将其推送到 GitHub。标签将几乎立即更正。
我发现最简单的方法就是在存储库的根文件夹中创建一个名为 .gitattributes的文件,并给它以下内容:
* linguist-vendored *.js linguist-vendored=false
这个示例告诉 GitHub/Languist 忽略所有文件,然后查看。JS 文件。我的项目 https://github.com/aim12340/jQuery-Before-Ready被列为 HTML,因为 HTML 示例文件比 JavaScript 文件大。这个文件为我修复了它,现在它被列为 JavaScript。
在项目根文件夹中创建一个名为. gitproperties 的文件,
mvnw.cmd linguist-generated=true mvnw linguist-generated=true
对我有用。
回答上面这个问题的专家 EamonnM 提供的解决方案在我的项目中起作用,但是有两个重要的事情。
他代码第二行开头的语言是您想要的语言,而不是您不喜欢的语言。记住要分辨出来。
似乎在 *之前您不能键入任何空格。(例如,当我想把我的语言变成 Swift 时,我应该键入 *.swift linguist-vendored=false。)
*
*.swift linguist-vendored=false
我有一个项目是在 Objective-C 中启动的,并完全改为 Swift (新项目,但在同一存储库目录中)。 GitHub 一直将其标识为 Objective-C,无论我在文件 。 gittribute中使用了什么(前面答案中的所有解决方案)。
所以,如果你确定所有的项目都是一种语言,那么你必须加上:
# Direct Swift *.* linguist-language=Swift
只有这样才能解决问题:)
在 。 gittribute文件中,告诉语言学家不要确定你不想要的文件语言。
忽略 JavaScript 文件的例子:
*.js linguist-vendored
将. gittribute 替换为 this,它将 所有文件重新分类为 Java。
*.* linguist-language=Java
语言学家
通过使用 .gitattributes文件中的 GitHub 语言学家可检测选项,您可以避免意外的语言检测(通过 文件扩展名或通过项目子文件夹等) :
语言统计数据中只包括编程语言。不同类型的语言(如 languages.yml中定义的)是不“可检测的”,因此它们不包含在语言统计信息中。 使用 linguist-detectable属性将路径标记或取消标记为可检测的: *.kicad_pcb linguist-detectable=true *.sch linguist-detectable=true tools/export_bom.py linguist-detectable=false
语言统计数据中只包括编程语言。不同类型的语言(如 languages.yml中定义的)是不“可检测的”,因此它们不包含在语言统计信息中。
languages.yml
使用 linguist-detectable属性将路径标记或取消标记为可检测的:
linguist-detectable
*.kicad_pcb linguist-detectable=true *.sch linguist-detectable=true tools/export_bom.py linguist-detectable=false
在文件夹的根目录中创建 .gitattributes文件。假设你想要的语言是 Java,只需要复制粘贴:
*.java linguist-detectable=true *.js linguist-detectable=false *.html linguist-detectable=false *.xml linguist-detectable=false
在 .gitattributes文件中,并在回购中推送该文件。刷新您的 GitHub 页面以查看语言更改。
注意 : 因此,对于所需的语言,将其设置为 true,而将其设置为 other,应该可以正常工作。
我对此也有意见。我创造了。在我的项目的根目录下。我移除了。JS 和。但是。Html 还在。这是我的 。 gittribute文件:
*.cs linguist-detectable=true *.js linguist-detectable=false` *.html linguist-detectable=false *.xml linguist-detectable=false
当我添加 * linguist-vendored时,我在 GitHub 上看不到任何内容。
* linguist-vendored
回答:
它仍然是相同的。 Html仍然显示。
答案很简单:
只需要在项目终端中添加这些线
在编写此命令之后,应该在项目资源管理器中找到文件 。 gittribute。如果此文件未出现,请尝试显示隐藏文件以找到它。
用你的目标语言改变 Java
git add .
git commit -m "Change tagged language from Java to Kotlin"
git push
现在刷新 GitHub 页面之后,您应该会找到新的更新。
如果您想更改 Laravel 存储库的语言,那么在 .gitattributes文件中添加以下代码行:
*.blade.php linguist-vendored
GitHub 将 刀锋文件定义为 HTML,但是 *.html linguist-vendored不工作。
*.html linguist-vendored
如果你想让你的 git 只检测.java 文件,你可以使用:
*.java linguist-detectable=true *.* linguist-detectable=false
.意味着每个其他文件不应该被检测为语言。 对于那些希望检测到两种以上语言的用户,他们可以操作这个文件。