Githubがリポジトリを間違った言語に変更する


106

これは大した問題ではないことはわかっていますが、私のGithubが言語的に多様化されていることを望みます。私はSwiftでプロジェクトを作成しましたが、コミットするとObjective Cにあると表示されます。

ParseフレームワークはObjective Cで記述されており、それを検出したためと思われますが、メインのリポジトリページの表示言語を変更する方法はありますか?


回答:


126

最も簡単なのは.gitattributes、私のリポジトリのルートフォルダーにというファイルを作成し、次の内容を与えることです。

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

この例では、github / linguistにすべてのファイルを無視して、.jsファイルを確認するように指示しています。私のプロジェクトhttps://github.com/aim12340/jQuery-Before-Readyは、HTMLのサンプルファイルがJSファイルよりも大きいため、HTMLとしてリストされました。このファイルは私のためにそれを修正し、今はJavaScriptとしてリストされています


5
上記の内容で新しい.gitattributesファイルをrepoルートフォルダーの下に作成するだけで、即座に修正されます!
Gob00st

最も優れています。CSSプロジェクトというラベルの付いたScalaプロジェクトがありました。良くない。;)
Objektwerks

5
ダミーコメントかもしれませんが、正確に何をすべきか疑問に思われる場合は、1。コメントの@ Gob00stのガイダンスに従ってください。2。「.js」をメイン言語ファイルの拡張子に置き換えてください。
エリザベス

どうもありがとう。私はたくさんの記事を読みましたが、これを除いてどれも私のために機能しませんでした。
Modo '17年

ASP.NETコアプロジェクトにも同様の問題がありました。Githubは、wwwフォルダーの下のjsファイルの量が多いため、それをjavascriptリポジトリであると考えました。[webprojectfolder] / wwwroot / *で.gitattributesファイルを追加すると、linguist-vendoredで修正されました。ありがとうございました。
ムスタファ

63

GitHubヘルプページで述べたように

GitHubは、オープンソースのLinguistライブラリを使用して、構文の強調表示とリポジトリの統計のファイル言語を決定します。
一部のファイルは識別が困難であり、プロジェクトには、プライマリコードよりも多くのライブラリファイルとベンダーファイルが含まれる場合があります。

そのgithub/linguist#troubleshootingため、この状況を修正するために確認する必要があります。

パーセンテージは、List Languages APIによって報告された各言語のコードのバイトに基づいて計算されます
バーが予期しない言語を報告している場合:

  • 統計バーの言語名をクリックして、その言語として識別されるファイルのリストを表示します。
  • 作成していないファイルが見つかった場合はベンダーが提供するコードパスの 1つにファイルを移動するか、手動の上書き機能を使用することを検討してくださいをて無視することをください。
  • ファイルが誤って分類されている場合は、未解決の問題を検索しますを他の誰かがすでにを報告していないかどうかを確認します。追加できる情報、特にパブリックリポジトリへのリンクは役に立ちます。
  • この誤分類の問題が報告されていない場合は、問題を開き、誤分類されているリポジトリへのリンクまたはコードのサンプルを含めます。

2017年2月の更新(1年後):

モニカパウエルの記事「GitHubでレポ言語を変更する方法

GitHubがプロジェクトの言語の誤分類を解決する方法を調査したところ、GitHubに無視するファイルを指示するのと同じくらい簡単に解決策を見つけました。

これらのファイルをGitHubにコミットしたいために使用できない場合は、.gitignore GitHubの言語学者にファイル内で無視するファイルを指示でき.gitattributesます

static/* linguist-vendored

この1行のファイルはstatic/、FlaskアプリのCSSやその他のアセットが保存されているフォルダー内のすべてのファイルを無視するようにGitHubに指示しました

「使用方法.gitattributes」セクションには、間違った言語をマークする方法を示しありません。
例えば:

JavaScriptライブラリなど、作成していないコードをgitリポジトリにチェックインすることは一般的な方法ですが、これによりプロジェクトの言語統計が膨らみ、プロジェクトが別の言語としてラベル付けされる場合もあります
デフォルトでは、Linguistはで定義されたすべてのパスvendor.ymlをベンダーとして扱うため、リポジトリの言語統計には含まれません。

linguist-vendored属性を使用して、ベンダーパスまたは非ベンダーパスを指定します。

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

今、どのようにこの可能性が疑問に思ったが、私のために働いまだ ... GitHubには明らかにファイルを必要とするが、私は本当にこれ以上私のレポでそれを望んでいないよう.gitattributeは.gitignoreである場合にはGitHub上の仕事を
デイブEveritt

1
.gitattributeではなく.gitattributes
Derzu

.gitattributesが存在することを知りませんでした。ありがとう+1
scipsycho 2018年

31

簡単にするために、私の手順を共有しましょう。

  1. ディレクトリをプロジェクトのルートフォルダーに変更します。

  2. 任意のツールを使用して、.gitattributesという名前のファイルを作成します。

    touch .gitattributes

  3. Linguistライブラリの指示に従ってファイルを編集し、Githubに方法を伝えます。次に例を示します。

    vi .gitattributes

    linguist-vendoredを使用すると、Githubでこのフォルダーとサブフォルダーの検出を「スキップ」できます。

    src/main/resources/static/* linguist-vendored

    linguist-documentation属性を使用して、パスをドキュメントとしてマークまたはマーク解除します。

    project-docs/* linguist-documentation

    または、ドキュメントを含む個々のファイルにマークを付けます

    documented_code.rb linguist-documentation=true

    これは少し奇妙ですが、特定の拡張子(* .rbなど)を持つファイルをJavaとして扱うようにGithubに指示することもできます。

    *.rb linguist-language=Java

  4. Gitは追加してコミットし、Githubにプッシュすると、ラベルはほぼ即座に修正されます。


私のために働いた、私は以下の行を.gitattributesファイルに追加しました *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani

15

.gitattributesをこれで置き換えます。これにより、すべてのファイルがJavaとして再分類されます。

 *.* linguist-language=Java

言語学者


8

フォルダーのルートに.gitattributesファイルを作成します。言語をJavaにしたい場合は、コピーして貼り付けてください

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

.gitattributesファイルでファイルをリポにプッシュします。GitHubページを更新して、言語の変更を確認します。

:したがって、目的の言語の場合はそれをtrueにし、他の言語はfalseにします。


2

Objective-Cで開始され、完全にSwiftに変更されたプロジェクトがありました(新しいプロジェクトですが、同じリポジトリディレクトリにあります)。Githubは、gitattributesに何を入力しても、Objective-Cとして識別し続けました。(上記のすべてのソリューション)

したがって、ジグが作動していて、すべてのプロジェクトが1つの言語であると確信している場合は、次のように徹底的に記述します。

ここに画像の説明を入力してください

それだけで問題が解決しました:)


2

.gitattributesファイルでは、不要なファイル言語を決定しないようにLinguistに指示するだけです。

JavaScriptファイルを無視する例。

*.js linguist-vendored

2

あなたは使用して予期しない言語(拡張子によって、またはプロジェクトでサブフォルダなど)の検出を回避することができる検出可能なオプション言語学者githubのを:あなたに.gitattributesのファイル:

言語統計にはプログラミング言語のみが含まれます。異なるタイプの言語(で定義languages.yml)は「検出可能」ではないため、言語統計に含まれません。

linguist-detectable属性を使用して、パスを検出可能としてマークまたはマーク解除します。

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

2

Laravelリポジトリの言語を変更する場合は、.gitattributesファイルに次の行を追加します。

*.blade.php linguist-vendored

GitHubはブレードファイルをhtmlとして定義しますが、*.html linguist-vendored機能しません。


1

上記の質問に回答したエキスパートEamonnMが提供したソリューションは私のプロジェクトで機能しましたが、2つの重要な点があります。

  1. 彼のコードの2行目の最初の言語は、嫌いな言語ではなく、好きな言語でした。それを区別することを忘れないでください。

  2. の前にスペースを入力できなかったようです*。(たとえば、*.swift linguist-vendored=false自分の言語を迅速に変更したいときに入力する必要があります。)


0

プロジェクトのルートフォルダーに.gitattributesという名前のファイルを作成します。追加{file_name} linguist-generated=trueするとうまくいきます。私の場合、

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

私のために働いた。


0

これにも問題があります。プロジェクトのルートに.gitattributesを作成しました。.jsと.csを削除しましたが、.htmlはまだ残っています。これは私の.gitattributesです:

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

* linguist-vendoredを追加すると、GitHubに何も表示されません。

ご協力いただきありがとうございます。

ここに画像の説明を入力してください

回答:

まだ同じですが、.htmlは引き続き表示されます


0

答えは非常に簡単です:

これらの行をプロジェクトターミナルに追加するだけです

  1. touch .gitattributes このコマンドを書き込んだ後、このファイル-.gitattributes-が見つかります。このファイルが表示されない場合は、隠しファイルを表示して見つけてください。
  2. *.* linguist-language=Java ターゲット言語でJavaを変更-Swiftの場合-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Githubページを更新すると、新しい更新が見つかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.