Github cambia el repositorio a un idioma incorrecto

106

Sé que esto no es un gran problema, pero me gusta que mi Github esté diversificado lingüísticamente. Escribí un proyecto en Swift y cuando lo confirmo dice que está en Objective C.

Creo que podría deberse a que los marcos Parse están escritos en Objective C y detecta eso, pero ¿hay alguna forma de cambiar el idioma de visualización en la página principal del repositorio?

Echizzle
fuente

Respuestas:

126

Encontré que lo más simple era crear un archivo llamado .gitattributesen la carpeta raíz de mi repositorio y darle estos contenidos:

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

Este ejemplo le dice a github / linguist que ignore todos los archivos y luego mire los archivos .js. Mi proyecto https://github.com/aim12340/jQuery-Before-Ready se incluyó como HTML porque los archivos de ejemplo HTML eran más grandes que los archivos JS. Este archivo me lo corrige y ahora aparece como JavaScript

EamonnM
fuente
5
simplemente cree un nuevo archivo .gitattributes en la carpeta raíz del repositorio con el contenido arriba, ¡solución instantánea!
Gob00st
El mas excelente. Tenía un proyecto de Scala que estaba etiquetado como un proyecto de CSS. No es bueno .;)
Objektwerks
5
Quizás un comentario ficticio, pero en caso de que se pregunte qué hacer exactamente, 1. Siga las instrucciones de @ Gob00st en su comentario y 2. Reemplace ".js" por la extensión de sus archivos de idioma principales.
Elisabeth
Muchas gracias. Revisé muchos artículos, pero ninguno funcionó para mí, excepto este.
Modo
Tuve un problema similar para mi proyecto principal de ASP.NET. Github pensó que era un repositorio de JavaScript debido a la cantidad de archivos js en la carpeta www. La adición del archivo .gitattributes con [webprojectfolder] / wwwroot / * linguist-vendored lo solucionó. Gracias.
Mustafa
63

Como se menciona en la página de ayuda de GitHub

GitHub utiliza la biblioteca Linguist de código abierto para determinar los idiomas de archivo para el resaltado de sintaxis y las estadísticas del repositorio.
Algunos archivos son difíciles de identificar y, a veces, los proyectos contienen más archivos de bibliotecas y proveedores que su código principal.

Por lo tanto, debe consultar github/linguist#troubleshootingpara solucionar esta situación.

Los porcentajes se calculan en función de los bytes de código para cada idioma según lo informado por la API List Languages .
Si la barra informa un idioma que no espera:

  • Haga clic en el nombre del idioma en la barra de estadísticas para ver una lista de los archivos identificados como ese idioma.
  • Si ve archivos que no escribió, considere mover los archivos a una de las rutas para el código vendido , o use la función de anulaciones manuales para ignorarlos.
  • Si los archivos se clasifican incorrectamente, busque problemas abiertos para ver si alguien más ya informó el problema. Cualquier información que pueda agregar, especialmente enlaces a repositorios públicos, es útil.
  • Si no se informan problemas de esta clasificación errónea, abra un problema e incluya un enlace al repositorio o una muestra del código que se está clasificando erróneamente.

Actualización de febrero de 2017 (un año después):

El artículo " Cómo cambiar el idioma de repositorio en GitHub " de Monica Powell

Al investigar cómo resolver GitHub clasificando erróneamente el idioma de sus proyectos, descubrí que la solución es tan simple como decirle a GitHub qué archivos ignorar.

Si bien aún desea enviar estos archivos a GitHub y, por lo tanto, no puede usar un .gitignore , puede decirle al lingüista de GitHub qué archivos ignorar en un .gitattributesarchivo

static/* linguist-vendored

Este archivo de una línea le dijo a GitHub que ignorara todos mis archivos en mi static/carpeta, que es donde se almacenan CSS y otros activos para una aplicación Flask

La sección "Uso .gitattributes" ilustra cómo marcar idiomas incorrectos.
Por ejemplo:

Verificar el código que no escribiste, como las bibliotecas de JavaScript, en tu repositorio de git es una práctica común, pero esto a menudo infla las estadísticas de idioma de tu proyecto e incluso puede hacer que tu proyecto sea etiquetado como otro idioma .
De forma predeterminada, Linguist trata todas las rutas definidas en vendor.ymlcomo vendidas y, por lo tanto, no las incluye en las estadísticas de idioma de un repositorio.

Utilice el atributo linguist-vendored para rutas de proveedor o no proveedor.

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
VonC
fuente
Trabajado para mí, aunque ahora se pregunta cómo esto podría todavía trabajo en GitHub si .gitattribute está en .gitignore como GitHub obviamente necesita el archivo, pero yo realmente no quiero en mi repo más ...
David Everitt
1
.gitattributes y no .gitattribute
Derzu
no sabía que existían .gitattributes. Gracias +1
scipsycho
31

Para hacerlo simple, déjame compartir mis pasos:

  1. Cambie el directorio a la carpeta raíz de su proyecto;

  2. Cree un archivo llamado .gitattributes utilizando cualquier herramienta de su elección:

    toque .gitattributes

  3. Edite el archivo siguiendo las instrucciones de la biblioteca Linguist para decirle a Github cómo hacerlo, por ejemplo:

    vi .gitattributes

    El uso de linguist-vendored puede permitir que Github "omita" la detección de esta carpeta y subcarpetas:

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

    Utilice el atributo linguist-documentation para marcar o desmarcar rutas como documentación:

    project-docs/* linguist-documentation

    O marque un archivo individual que contenga documentación

    documented_code.rb linguist-documentation=true

    Esto es un poco extraño, pero también puede hacer: decirle a Github que trate algunos archivos con una extensión específica (por ejemplo, * .rb) como Java:

    *.rb linguist-language=Java

  4. Git add, commit y luego envíalo a Github, la etiqueta se corregirá casi de inmediato.

Brillante
fuente
Funcionó para mí, he agregado las siguientes líneas a mi archivo .gitattributes *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani
15

Reemplace sus .gitattributes con esto, que reclasifica todos los archivos como Java.

 *.* linguist-language=Java

lingüista

Sumit
fuente
8

Cree el archivo .gitattributes en la raíz de su carpeta. Suponga que desea que el lenguaje sea Java, simplemente copie y pegue

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

en el archivo .gitattributes e inserte el archivo en el repositorio. Actualice su página de GitHub para ver el cambio de idioma.

Nota : Entonces, para el idioma deseado, hágalo verdadero y el de otros falso. Debería funcionar bien

Saif Siddiqui
fuente
2

Tenía un proyecto que se inició en Objective-C y cambió a Swift por completo (proyecto nuevo pero en el mismo directorio de repositorio). Github siguió identificándolo como Objective-C sin importar lo que haya puesto en gitattributes. (todas las soluciones anteriores)

Entonces, si la plantilla está arriba y estás seguro de que todo el proyecto es un idioma, pones radicalmente:

ingrese la descripción de la imagen aquí

Solo eso solucionó el problema :)

Ethan Halprin
fuente
2

En el archivo .gitattributes, dígale a Linguist que no determine los idiomas de archivo que no desea.

Ejemplo para ignorar archivos Javascript.

*.js linguist-vendored
Ramil Mammadov
fuente
2

Puede evitar la detección de idiomas inesperados (por extensión, o por subcarpeta del proyecto, etc.) utilizando la opción detectable del lingüista de github: en su archivo .gitattributes :

Solo los lenguajes de programación se incluyen en las estadísticas de idiomas. Los idiomas de un tipo diferente (como se define en languages.yml) no son "detectables", lo que hace que no se incluyan en las estadísticas de idiomas.

Utilice el linguist-detectableatributo para marcar o desmarcar rutas como detectables:

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

Si desea cambiar el idioma del repositorio de Laravel, agregue la siguiente línea a su .gitattributesarchivo:

*.blade.php linguist-vendored

GitHub define los archivos blade como html, pero *.html linguist-vendoredno funciona.

Slava
fuente
1

La solución proporcionada por el experto EamonnM que respondió a esta pregunta anterior funcionó en mi proyecto, pero hay dos cosas importantes.

  1. El idioma al comienzo de la segunda línea de su código era el idioma que deseaba en lugar del idioma que no le gustaba. Recuerda distinguirlo.

  2. Parece que no pudo escribir ningún espacio antes del *. (Por ejemplo, debería escribir *.swift linguist-vendored=falsecuando quiera cambiar mi idioma a rápido).

fafa
fuente
0

Cree un archivo llamado .gitattributes en la carpeta raíz de su proyecto. Agregar {file_name} linguist-generated=truepuede hacer el truco. En mi caso,

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

trabajó para mi.

Jack
fuente
0

También tengo problemas con esto. Creé .gitattributes en la raíz de mi proyecto. Eliminé .js y .cs, pero .html todavía está allí. Este es mi .gitattributes:

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

Cuando agrego * linguist-vendored, no veo nada en GitHub.

Gracias por tu ayuda.

ingrese la descripción de la imagen aquí

Responder:

Sigue siendo el mismo, .html todavía se muestra

Ivan Radunković
fuente
0

La respuesta es bastante simple:

solo agrega estas líneas en la terminal de tu proyecto

  1. touch .gitattributes después de escribir este comando, se debe encontrar este archivo -.gitattributes-. Si este archivo no aparece, intente mostrar los archivos ocultos para encontrarlo.
  2. *.* linguist-language=Java Cambie Java con su idioma de destino -Swift en su caso-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Ahora, después de actualizar la página de Github, debería encontrar la nueva actualización.
Mahmoud Zaher
fuente
-1
# add this two lines 
*.* linguist-language=Swift

project-docs/* linguist-documentation
janlionly
fuente
4
¿Puede agregar alguna explicación con su declaración de código?
Stephan Hogenboom