Github ändert das Repository in eine falsche Sprache


106

Ich weiß, dass dies keine große Sache ist, aber ich mag es, wenn mein Github sprachlich abwechslungsreich ist. Ich habe ein Projekt in Swift geschrieben und wenn ich es festschreibe, steht es in Ziel C.

Ich denke, es könnte daran liegen, dass die Parse-Frameworks in Objective C geschrieben sind und dies erkennen. Gibt es jedoch eine Möglichkeit, die Anzeigesprache auf der Haupt-Repository-Seite zu ändern?


Antworten:


126

Ich fand es am einfachsten, eine Datei zu erstellen, die .gitattributesim Stammordner meines Repositorys aufgerufen wurde , und ihr folgenden Inhalt zu geben:

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

In diesem Beispiel wird github / linguist angewiesen, alle Dateien zu ignorieren und sich dann nur die .js-Dateien anzusehen. Mein Projekt https://github.com/aim12340/jQuery-Before-Ready wurde als HTML aufgeführt, da die HTML-Beispieldateien größer als die JS-Dateien waren. Diese Datei behebt es für mich und ist jetzt als JavaScript aufgeführt


5
Erstellen Sie einfach eine neue .gitattributes-Datei im Repo-Stammordner mit dem obigen Inhalt, sofortige Korrektur!
Gob00st

Allerbeste. Ich hatte ein Scala-Projekt, das als CSS-Projekt gekennzeichnet war. Nicht gut.;)
Objektwerks

5
Vielleicht ein Dummy-Kommentar, aber falls Sie sich fragen, was Sie genau tun sollen, 1. Befolgen Sie die Anweisungen von @ Gob00st in seinem Kommentar und 2. Ersetzen Sie ".js" durch die Erweiterung Ihrer Hauptsprachendateien.
Elisabeth

Vielen Dank. Ich habe viele Artikel durchgesehen, aber keiner von ihnen hat für mich funktioniert, außer diesem.
Modo

Ich hatte ein ähnliches Problem für mein ASP.NET-Kernprojekt. Github hielt es aufgrund der Anzahl der JS-Dateien im Ordner www für ein Javascript-Repo. Das Hinzufügen der .gitattributes-Datei mit [webprojectfolder] / wwwroot / * linguist-vendored hat das Problem behoben. Danke dir.
Mustafa

63

Wie auf der GitHub-Hilfeseite erwähnt

GitHub verwendet die Open-Source- Linguist-Bibliothek , um Dateisprachen für die Syntaxhervorhebung und Repository-Statistiken zu bestimmen.
Einige Dateien sind schwer zu identifizieren, und manchmal enthalten Projekte mehr Bibliotheks- und Herstellerdateien als ihr primärer Code.

Sie müssen sich also bei erkundigen github/linguist#troubleshooting, um diese Situation zu beheben.

Die Prozentsätze werden basierend auf den Codebytes für jede Sprache berechnet, die von der List Languages ​​API gemeldet werden .
Wenn die Leiste eine Sprache meldet, die Sie nicht erwarten:

  • Klicken Sie in der Statistikleiste auf den Namen der Sprache, um eine Liste der Dateien anzuzeigen, die als diese Sprache identifiziert wurden.
  • Wenn Sie Dateien sehen, die Sie nicht geschrieben haben, sollten Sie die Dateien in einen der Pfade für den verkauften Code verschieben oder sie mithilfe der Funktion zum manuellen Überschreiben ignorieren.
  • Wenn die Dateien falsch klassifiziert werden, suchen Sie nach offenen Problemen , um festzustellen, ob bereits jemand anderes das Problem gemeldet hat. Alle Informationen, die Sie hinzufügen können, insbesondere Links zu öffentlichen Repositorys, sind hilfreich.
  • Wenn keine Probleme mit dieser Fehlklassifizierung gemeldet wurden, öffnen Sie ein Problem und fügen Sie einen Link zum Repository oder ein Beispiel für den Code hinzu, der falsch klassifiziert wird.

Update Februar 2017 (ein Jahr später):

Der Artikel " So ändern Sie die Repo-Sprache in GitHub " von Monica Powell

Als ich nachforschte, wie GitHub die Sprache Ihrer Projekte falsch klassifizieren kann, stellte ich fest, dass die Lösung so einfach ist, wie GitHub mitzuteilen, welche Dateien ignoriert werden sollen.

Während Sie diese Dateien weiterhin an GitHub übergeben möchten und daher keine verwenden .gitignore können, können Sie dem Linguisten von GitHub mitteilen, welche Dateien in einer .gitattributesDatei ignoriert werden sollen

static/* linguist-vendored

Diese einzeilige Datei wies GitHub an, alle meine Dateien in meinem static/Ordner zu ignorieren, in dem CSS und andere Assets für eine Flask-App gespeichert sind

Der Abschnitt "Verwenden .gitattributes" zeigt, wie falsche Sprachen markiert werden.
Zum Beispiel:

Das Überprüfen von Code, den Sie nicht geschrieben haben, wie z. B. JavaScript-Bibliotheken, in Ihr Git-Repo ist eine gängige Praxis. Dies erhöht jedoch häufig die Sprachstatistik Ihres Projekts und kann sogar dazu führen, dass Ihr Projekt als eine andere Sprache gekennzeichnet wird .
Standardmäßig behandelt Linguist alle Pfade, die vendor.ymlals verkauft definiert sind, und nimmt sie daher nicht in die Sprachstatistik für ein Repository auf.

Verwenden Sie das Attribut "Linguist Vendored" für Anbieter- oder Nicht-Anbieterpfade.

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

Hat für mich funktioniert, obwohl ich mich jetzt frage, wie das auf GitHub noch funktionieren könnte, wenn .gitattribute in .gitignore ist, da GitHub die Datei offensichtlich benötigt, aber ich möchte sie nicht mehr wirklich in meinem Repo haben ...
Dave Everitt

1
.gitattributes und nicht .gitattribute
Derzu

wusste nicht, dass .gitattributes existieren. Danke +1
scipsycho

31

Lassen Sie mich zur Vereinfachung meine Schritte teilen:

  1. Wechseln Sie in Ihr Projektstammordner.

  2. Erstellen Sie eine Datei mit dem Namen .gitattributes mit den Tools Ihrer Wahl:

    Berühren Sie .gitattributes

  3. Bearbeiten Sie die Datei, indem Sie den Anweisungen der Linguist-Bibliothek folgen , um Github zu erklären, wie dies zu tun ist, zum Beispiel:

    vi .gitattributes

    Mit Linguist-Vendored kann Github die Erkennung für diesen Ordner und diese Unterordner "überspringen":

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

    Verwenden Sie das Attribut linguist-documentation, um Pfade als Dokumentation zu markieren oder die Markierung aufzuheben:

    project-docs/* linguist-documentation

    ODER markieren Sie eine einzelne Datei mit Dokumentation

    documented_code.rb linguist-documentation=true

    Dies ist etwas seltsam, aber Sie können auch Github anweisen, einige Dateien mit einer bestimmten Erweiterung (z. B. * .rb) als Java zu behandeln:

    *.rb linguist-language=Java

  4. Git hinzufügen, festschreiben und dann an Github senden, das Label würde fast sofort korrigiert.


Ich habe für mich gearbeitet und meiner .gitattributes-Datei folgende Zeilen hinzugefügt *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani

15

Ersetzen Sie Ihre .gitattributes durch diese, wodurch alle Dateien als Java neu klassifiziert werden .

 *.* linguist-language=Java

Linguist


8

Erstellen Sie eine .gitattributes-Datei im Stammverzeichnis Ihres Ordners. Angenommen, Sie möchten, dass die Sprache Java ist, kopieren und fügen Sie sie einfach ein

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

Klicken Sie in der Datei .gitattributes auf die Datei im Repo. Aktualisieren Sie Ihre GitHub-Seite, um die Sprachänderung zu sehen.

Hinweis : Also, für die gewünschte Sprache machen Sie es wahr und andere falsch. Es sollte gut funktionieren


2

Ich hatte ein Projekt, das in Objective-C gestartet und vollständig in Swift geändert wurde (neues Projekt, aber im selben Repository-Verzeichnis). Github identifizierte es immer wieder als Objective-C, egal was ich in Gitattributes eingegeben habe. (alle Lösungen oben)

Wenn also die Schablone hoch ist und Sie sicher sind, dass alle Projekte eine Sprache haben, sagen Sie radikal:

Geben Sie hier die Bildbeschreibung ein

Nur das hat das Problem behoben :)


2

In der .gitattributes-Datei teilen Sie Linguist einfach mit, dass Sie keine Dateisprachen bestimmen, die Sie nicht möchten.

Beispiel zum Ignorieren von Javascript-Dateien.

*.js linguist-vendored

2

Sie können die Erkennung unerwarteter Sprachen (nach Erweiterung oder nach Projektunterordner usw.) vermeiden, indem Sie die erkennbare Option github linguist verwenden: in Ihrer .gitattributes- Datei:

In der Sprachstatistik sind nur Programmiersprachen enthalten. Sprachen eines anderen Typs (wie in definiert languages.yml) sind nicht "erkennbar", sodass sie nicht in die Sprachstatistik aufgenommen werden.

Verwenden Sie das linguist-detectableAttribut, um Pfade als erkennbar zu markieren oder die Markierung aufzuheben:

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

2

Wenn Sie die Sprache des Laravel-Repositorys ändern möchten, fügen Sie Ihrer .gitattributesDatei die folgende Zeile hinzu :

*.blade.php linguist-vendored

GitHub definiert Blade-Dateien als HTML, *.html linguist-vendoredfunktioniert aber nicht.


1

Die Lösung, die von dem Experten EamonnM bereitgestellt wurde, der diese Frage oben beantwortet hat, hat in meinem Projekt funktioniert, aber es gibt zwei wichtige Dinge.

  1. Die Sprache am Anfang der zweiten Zeile seines Codes war die gewünschte Sprache anstelle der Sprache, die Sie nicht mögen. Denken Sie daran, es zu unterscheiden.

  2. Es scheint, dass Sie kein Leerzeichen vor dem eingeben konnten *. (Zum Beispiel sollte ich tippen, *.swift linguist-vendored=falsewenn ich meine Sprache in schnell ändern möchte.)


0

Erstellen Sie eine Datei mit dem Namen .gitattributes für Ihren Projektstammordner. Hinzufügen {file_name} linguist-generated=truekann den Trick tun. In meinem Fall,

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

arbeitete für mich.


0

Ich habe auch ein Problem damit. Ich habe .gitattributes im Stammverzeichnis meines Projekts erstellt. Ich habe .js und .cs entfernt, aber .html ist immer noch da. Dies sind meine .gitattributes:

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

Wenn ich * linguist-vendored hinzufüge, sehe ich nichts auf GitHub.

Danke für Ihre Hilfe.

Geben Sie hier die Bildbeschreibung ein

Antworten:

Trotzdem wird .html immer noch angezeigt


0

Die Antwort ist ziemlich einfach:

Fügen Sie diese Zeilen einfach in Ihr Projektterminal ein

  1. touch .gitattributes Nach dem Schreiben dieses Befehls sollte diese Datei -.gitattributes- gefunden werden. Wenn diese Datei nicht angezeigt wird, versuchen Sie, versteckte Dateien anzuzeigen, um sie zu finden.
  2. *.* linguist-language=Java Ändern Sie Java mit Ihrer Zielsprache - Schnell in Ihrem Fall -
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Nach der Aktualisierung der Github-Seite sollten Sie nun das neue Update finden.

-1
# add this two lines 
*.* linguist-language=Swift

project-docs/* linguist-documentation

4
Können Sie Ihrer Code-Anweisung eine Erklärung hinzufügen?
Stephan Hogenboom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.