我知道这不是一个大问题,但我喜欢我的Github在语言上多元化。我在Swift中编写了一个项目,当我提交时,它说它在Objective C中。
我认为这可能是因为Parse框架是用Objective C编写的,它检测到了,但有没有办法改变主存储库页面上的显示语言?
答案 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使用开源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)
为简单起见,让我分享一下我的步骤:
将目录更改为项目根文件夹;
使用您选择的whaterver工具创建名为.gitattributes的文件:
触摸.gitattributes
按照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
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)
答案 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提供的解决方案在我的项目中奏效,上面回答了这个问题,但是有两点很重要。
他的代码第二行开头的语言是您想要的语言,而不是您不喜欢的语言。记住要区分它。
似乎您无法在*
之前输入任何空格。 (例如,当我要将语言更改为快速语言时,我应该输入*.swift linguist-vendored=false
。)
答案 10 :(得分:0)
我有一个项目是从Objective-C开始的,然后完全更改为Swift(新项目,但在相同的存储库目录中)。 无论我在gitattributes中添加了什么,Github始终将其标识为Objective-C。 (以上所有解决方案)
因此,如果夹具已经安装好,并且您确定所有项目都是一种语言,则可以从根本上说:
只有这样才能解决问题:)
答案 11 :(得分:0)
我对此也有疑问。我在项目的根目录下创建了.gitattributes。我删除了.js和.cs,但.html仍然存在。这是我的.gitattributes:
*.cs linguist-detectable=true
*.js linguist-detectable=false`
*.html linguist-detectable=false
*.xml linguist-detectable=false
当我添加*语言供应商时,我在GitHub上看不到任何东西。
感谢您的帮助。
答案:
还是一样,仍然显示.html
答案 12 :(得分:0)
答案很简单:
只需在您的项目终端中添加这些行
source SOURCE_URL
pod YourSdkName
编写此命令后,应找到此文件-.gitattributes-,如果未出现此文件,请尝试显示隐藏文件以找到它。touch .gitattributes
使用您的目标语言更改Java-视情况而定-*.* linguist-language=Java
git add .
git commit -m "Change Tagged language from Java to Kotlin"
现在,在刷新Github页面之后,您应该找到新的更新。答案 13 :(得分:-1)
# add this two lines
*.* linguist-language=Swift
project-docs/* linguist-documentation