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?

Échizzle
la source

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

EamonnM
la source
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
VonC
la source
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.

Brillant
la source
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

Sumit
la source
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

Saif Siddiqui
la source
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 :)

Ethan Halprin
la source
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
Ramil Mammadov
la source
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
Drakonoved
la source
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.

Slava
la source
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.)

fafa
la source
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.

Jack
la source
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é

Ivan Radunković
la source
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.
Mahmoud Zaher
la source
-1
# add this two lines 
*.* linguist-language=Swift

project-docs/* linguist-documentation
janlionly
la source
4
Pouvez-vous ajouter quelques explications avec votre déclaration de code ??
Stephan Hogenboom