web-dev-qa-db-fra.com

Github change de référentiel dans une langue incorrecte

Je sais que ce n'est pas un problème, mais j'aime que mon Github soit diversifié sur le plan linguistique. J'ai écrit un projet dans Swift et quand je commets ça dit que c'est dans Objective C. 

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

42
Echizzle

J'ai trouvé que le plus simple était de créer un fichier nommé .gitattributes dans le dossier racine de mon référentiel et de lui donner le contenu suivant:

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

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

58
EamonnM

Comme mentionné dans la page d'aide GitHub

GitHub utilise la bibliothèque open source Linguist pour déterminer les langues des fichiers 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èque et de fournisseurs que leur code principal.

Donc, vous devez vérifier avec github/linguist#troubleshooting afin de remédier à cette situation.

Les pourcentages sont calculés en fonction des octets de code de chaque langue, tels qu'ils sont rapportés par l'API List Languages ​​ .
Si la barre indique une langue inattendue:

  • Cliquez sur le nom de la langue dans la barre de statistiques pour afficher la liste des fichiers identifiés comme étant cette langue.
  • Si vous voyez des fichiers que vous n'avez pas écrits, envisagez de les déplacer dans l'un des chemins pour le code vendeur , ou utilisez la fonction de substitution de manual pour les ignorer.
  • Si les fichiers sont mal classés, recherchez problèmes en suspens pour voir si quelqu'un d'autre a déjà signalé le problème. Toute information que vous pouvez ajouter, notamment des liens vers des référentiels publics, est utile.
  • S'il n'y a aucun problème signalé lié à cette erreur de classification, ouvrez un problème et incluez un lien vers le référentiel ou un exemple du code en cours de mauvaise classification.

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

L'article "Comment changer la langue du repo dans GitHub" de Monica Powell

Après avoir cherché comment résoudre GitHub en classant mal la langue de vos projets, j'ai découvert que la solution était aussi simple que d'indiquer à GitHub les fichiers à ignorer.

Bien que vous souhaitiez toujours valider ces fichiers dans GitHub et que vous ne puissiez donc pas utiliser un .gitignore, vous pouvez indiquer au linguiste de GitHub les fichiers à ignorer dans un fichier .gitattributes.

static/* linguist-vendored

Ce fichier d’une ligne a demandé à GitHub d’ignorer tous mes fichiers dans mon dossier static/, où sont stockés les éléments CSS et autres pour une application Flask.

La section "Utilisation de .gitattributes" illustre bien comment marquer des langues incorrectes.
Par exemple:

La vérification du code que vous n'avez pas écrit, comme les bibliothèques JavaScript, dans votre dépôt Git est une pratique courante, mais cela gonfle souvent les statistiques de langue de votre projet et peut même amener votre projet à être étiqueté comme une autre langue.
Par défaut, Linguist traite tous les chemins définis dans vendor.yml comme étant gérés et ne les inclut donc pas dans les statistiques de langue pour un référentiel.

Utilisez l'attribut linguist-vendored pour les chemins de fournisseur ou de non-fournisseur.

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

Pour faire simple, laissez-moi partager mes pas:

  1. Changer de répertoire dans le dossier racine de votre projet;

  2. Créez un fichier nommé .gitattributes en utilisant les outils de votre choix:

    toucher .gitattributes

  3. Editez le fichier en suivant les instructions de la bibliothèque Linguist pour indiquer à Github comment procéder, par exemple:

    vi .gitattributes

    Utiliser linguist-vendored peut laisser Github "ignorer" 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ésélectionner les chemins en tant que 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 aussi faire - de dire à Github de traiter certains fichiers avec une extension spécifique (par exemple * .rb) comme étant Java:

    *.rb linguist-language=Java

  4. Git add, commit, puis Push to Github, l’étiquette serait corrigée presque immédiatement.

21
Bright

Remplacez vos .gitattributes par ceci, qui reclasse les fichiers tous en Java.

 *.* linguist-language=Java

linguiste

1
Sumit

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

Exemple pour ignorer les fichiers Javascript.

*.js linguist-vendored
0
Ramil Mammadov

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

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

a travaillé pour moi.

0
Sushil kumawat

Créez un fichier .gitattributes à la racine de votre dossier. Supposons que vous vouliez que le langage soit Java, il 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 fichier repo.Refresh de votre page GitHub pour voir le changement de langue.

0
Saif Siddiqui

J'ai eu un projet qui a été démarré dans Objective-C et qui a été complètement remplacé par Swift (nouveau projet mais dans le même répertoire de dépôt) . (toutes les solutions ci-dessus)

Donc, si le gabarit est en place, et que vous êtes sûr que tout projet est une seule langue - vous mettez radicalement: 

enter image description here

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

0
Ethan Halprin

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

Seuls les langages de programmation sont inclus dans les statistiques sur les langues. 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 sur les langues.

Utilisez l'attribut linguist-detectable pour marquer ou désélectionner les chemins détectables:

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

La solution fournie par l'expert EamonnM qui a répondu à la 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 et non la langue que vous n'aimez pas. N'oubliez pas de le distinguer.

  2. Il semble que vous ne puissiez pas taper d’espace avant le *. (Par exemple, je devrais saisir *.Swift linguist-vendored=false lorsque je souhaite changer ma langue en Swift.)

0
fafa