Github modifie le référentiel en une langue incorrecte


106

Je sais que ce n'est pas un gros problème mais j'aime que mon Github soit linguistiquement diversifié. J'ai écrit un projet dans Swift et quand je m'engage, il dit que c'est dans l'Objectif C.

Je pense que c'est peut-être parce que les frameworks Parse sont écrits en Objective C et qu'il détecte cela, mais y a-t-il un moyen de changer la langue d'affichage sur la page principale du référentiel?


Réponses:


126

J'ai trouvé que le plus simple était de créer un fichier appelé .gitattributesdans le dossier racine de mon référentiel et de lui donner ce contenu:

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

Cet exemple indique à github / linguist d'ignorer tous les fichiers, puis de regarder simplement les fichiers .js. Mon projet https://github.com/aim12340/jQuery-Before-Ready a été répertorié comme HTML car les fichiers d'exemple HTML étaient plus volumineux que les fichiers JS. Ce fichier le corrige pour moi et maintenant il est répertorié comme JavaScript


5
créez simplement un nouveau fichier .gitattributes sous le dossier racine du référentiel avec le contenu ci-dessus, correction instantanée!
Gob00st

Le plus excellent. J'avais un projet Scala qui était étiqueté comme projet CSS. Pas bon .;)
Objektwerks

5
Peut-être un commentaire factice, mais au cas où vous vous demanderiez quoi faire exactement, 1. Suivez les conseils de @ Gob00st dans son commentaire, et 2. Remplacez ".js" par l'extension de vos fichiers de langue principale.
Elisabeth

Merci beaucoup. J'ai parcouru beaucoup d'articles mais aucun d'entre eux n'a fonctionné pour moi sauf celui-ci.
Modo

J'ai eu un problème similaire pour mon projet principal ASP.NET. Github pensait qu'il s'agissait d'un dépôt javascript en raison de la quantité de fichiers js dans le dossier www. L'ajout d'un fichier .gitattributes avec [webprojectfolder] / wwwroot / * linguist-vendored l'a corrigé. Je vous remercie.
Mustafa

63

Comme mentionné dans la page d'aide de GitHub

GitHub utilise la bibliothèque Linguist open source pour déterminer les langages de fichier pour la coloration syntaxique et les statistiques du référentiel.
Certains fichiers sont difficiles à identifier et parfois les projets contiennent plus de fichiers de bibliothèques et de fournisseurs que leur code principal.

Vous devez donc vérifier avec github/linguist#troubleshootingpour résoudre cette situation.

Les pourcentages sont calculés en fonction des octets de code pour chaque langue, comme indiqué par l' API List Languages .
Si la barre signale une langue à laquelle vous ne vous attendez pas:

  • Cliquez sur le nom de la langue dans la barre de statistiques pour voir une liste des fichiers identifiés comme cette langue.
  • Si vous voyez des fichiers que vous n'avez pas écrits, envisagez de déplacer les fichiers vers l'un des chemins d'accès du code fourni ou utilisez la fonction de remplacement manuel pour les ignorer.
  • Si les fichiers sont mal classés, recherchez les problèmes ouverts pour voir si quelqu'un d'autre a déjà signalé le problème. Toutes les informations que vous pouvez ajouter, en particulier les liens vers les référentiels publics, sont utiles.
  • Si aucun problème lié à cette classification erronée n'a été signalé, ouvrez un problème et ajoutez un lien vers le référentiel ou un échantillon du code mal classé.

Mise à jour février 2017 (un an plus tard):

L'article " Comment changer la langue du référentiel dans GitHub " de Monica Powell

En recherchant comment résoudre GitHub en classant mal la langue de vos projets, j'ai découvert que la solution était aussi simple que de dire à GitHub quels fichiers ignorer.

Bien que vous souhaitiez toujours valider ces fichiers sur GitHub et que vous ne puissiez donc pas utiliser un, .gitignore vous pouvez indiquer au linguiste de GitHub quels fichiers ignorer dans un .gitattributesfichier

static/* linguist-vendored

Ce fichier d'une ligne a dit à GitHub d'ignorer tous mes fichiers dans mon static/dossier, où sont stockés CSS et autres actifs pour une application Flask

La section "Utilisation .gitattributes" illustre comment marquer les mauvaises langues.
Par exemple:

Vérifier le code que vous n'avez pas écrit, tel que les bibliothèques JavaScript, dans votre référentiel git est une pratique courante, mais cela gonfle souvent les statistiques de langage de votre projet et peut même entraîner l'étiquetage de votre projet comme un autre langage .
Par défaut, Linguist traite tous les chemins définis dans vendor.ymlcomme fournis et ne les inclut donc pas dans les statistiques linguistiques d'un référentiel.

Utilisez l'attribut de fournisseur de linguiste pour les chemins de fournisseur ou non.

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

Cela a fonctionné pour moi, bien que maintenant je me demande comment cela pourrait encore fonctionner sur GitHub si .gitattribute est en .gitignore car GitHub a évidemment besoin du fichier mais je ne le veux plus vraiment dans mon dépôt…
Dave Everitt

1
.gitattributes et non .gitattribute
Derzu

ne savait pas que .gitattributes existait. Merci +1
scipsycho

31

Pour faire simple, laissez-moi partager mes étapes:

  1. Remplacez le répertoire par le dossier racine de votre projet;

  2. Créez un fichier nommé .gitattributes à l'aide des outils whaterver de votre choix:

    touchez .gitattributes

  3. Modifiez le fichier en suivant les instructions de la bibliothèque Linguist pour indiquer à Github comment faire, par exemple:

    vi .gitattributes

    Utiliser un linguiste peut permettre à Github de "sauter" la détection de ce dossier et de ses sous-dossiers:

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

    Utilisez l'attribut linguist-documentation pour marquer ou décocher les chemins comme documentation:

    project-docs/* linguist-documentation

    OU marquer un fichier individuel contenant de la documentation

    documented_code.rb linguist-documentation=true

    C'est un peu bizarre mais vous pouvez le faire aussi - pour dire à Github de traiter certains fichiers avec une extension spécifique (par exemple * .rb) comme Java:

    *.rb linguist-language=Java

  4. Git ajoutez, validez puis poussez-le sur Github, le libellé serait corrigé presque immédiatement.


A travaillé pour moi, j'ai ajouté des lignes ci-dessous à mon fichier .gitattributes *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani

15

Remplacez vos .gitattributes par this, qui reclassifie tous les fichiers en Java.

 *.* linguist-language=Java

linguiste


8

Créez un fichier .gitattributes à la racine de votre dossier. Supposons que vous souhaitiez que le langage soit Java, il vous suffit de copier-coller

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

dans le fichier .gitattributes et poussez le fichier dans le repo. Actualisez votre page GitHub pour voir le changement de langue.

Remarque : Donc, pour la langue souhaitée, rendez-le vrai et l'autre est faux, cela devrait fonctionner correctement


2

J'avais un projet qui a été démarré en Objective-C et changé complètement en Swift (nouveau projet mais dans le même répertoire de référentiel). Github a continué à l'identifier comme Objective-C, peu importe ce que j'ai mis dans gitattributes. (toutes les solutions ci-dessus)

Donc, si le gabarit est en place et que vous êtes sûr que tous les projets sont dans un seul langage, vous mettez radicalement:

entrez la description de l'image ici

Seulement cela a résolu le problème :)


2

Dans le fichier .gitattributes, dites simplement à Linguist de ne pas déterminer les langues de fichier dont vous ne voulez pas.

Exemple pour ignorer les fichiers Javascript.

*.js linguist-vendored

2

Vous pouvez éviter la détection de langues inattendue (par extension, ou par sous-dossier du projet, etc.) en utilisant l' option détectable github linguist: dans votre fichier .gitattributes :

Seuls les langages de programmation sont inclus dans les statistiques linguistiques. Les langues d'un type différent (tel que défini dans languages.yml) ne sont pas "détectables" et ne sont donc pas incluses dans les statistiques linguistiques.

Utilisez l' linguist-detectableattribut pour marquer ou supprimer les chemins comme détectables:

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

2

Si vous souhaitez changer la langue du référentiel Laravel, ajoutez la ligne suivante à votre .gitattributesfichier:

*.blade.php linguist-vendored

GitHub définit les fichiers lame comme html, mais *.html linguist-vendoredne fonctionne pas.


1

La solution qui a été apportée par l'expert EamonnM qui a répondu à cette question ci-dessus a fonctionné dans mon projet, mais il y a deux choses importantes.

  1. La langue au début de la deuxième ligne de son code était la langue que vous voulez au lieu de la langue que vous n'aimez pas. N'oubliez pas de le distinguer.

  2. Il semble que vous ne pouviez pas taper d'espace avant le *. (Par exemple, je devrais taper *.swift linguist-vendored=falselorsque je veux changer ma langue en rapide.)


0

Créez un fichier nommé .gitattributes dans le dossier racine de votre projet. L'ajout {file_name} linguist-generated=truepeut faire l'affaire. Dans mon cas,

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

travaillé pour moi.


0

J'ai un problème avec cela aussi. J'ai créé .gitattributes à la racine de mon projet. J'ai supprimé .js et .cs, mais .html est toujours là. Voici mes .gitattributes:

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

Quand j'ajoute * linguist-vendored, je ne vois rien sur GitHub.

Merci de votre aide.

entrez la description de l'image ici

Répondre:

Toujours le même, le .html est toujours affiché


0

La réponse est plutôt simple:

ajoutez simplement ces lignes dans votre terminal de projet

  1. touch .gitattributes après avoir écrit cette commande, ce fichier -.gitattributes- devrait être trouvé.Si ce fichier n'apparaît pas, essayez d'afficher les fichiers cachés pour le trouver.
  2. *.* linguist-language=Java Changez Java avec votre langage cible -Swift dans votre cas-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Maintenant, après l'actualisation de la page Github, vous devriez trouver la nouvelle mise à jour.

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

project-docs/* linguist-documentation

4
Pouvez-vous ajouter quelques explications avec votre déclaration de code ??
Stephan Hogenboom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.