Github cambia il repository nella lingua sbagliata


106

So che questo non è un grosso problema, ma mi piace che il mio GitHub sia linguisticamente diversificato. Ho scritto un progetto in Swift e quando mi impegno dice che è in Objective C.

Penso che potrebbe essere perché i framework Parse sono scritti in Objective C e lo rileva, ma c'è un modo per cambiare la lingua di visualizzazione nella pagina principale del repository?


Risposte:


126

Ho scoperto che la cosa più semplice era creare un file chiamato .gitattributesnella cartella principale del mio repository e dargli questi contenuti:

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

Questo esempio dice a github / linguist di ignorare tutti i file, quindi guarda i file .js. Il mio progetto https://github.com/aim12340/jQuery-Before-Ready è stato elencato come HTML perché i file di esempio HTML erano più grandi dei file JS. Questo file lo risolve per me e ora è elencato come JavaScript


5
basta creare un nuovo file .gitattributes nella cartella principale del repo con il contenuto sopra, correzione istantanea!
Gob00

Eccellente. Avevo un progetto Scala etichettato come progetto CSS. Non va bene .;)
Objektwerks

5
Forse un commento fittizio, ma nel caso ti chiedessi cosa fare esattamente, 1. Segui la guida di @ Gob00st nel suo commento e 2. Sostituisci ".js" con l'estensione dei file della tua lingua principale.
Elisabeth

Molte grazie. Ho letto molti articoli ma nessuno di loro ha funzionato per me tranne questo.
Modo

Ho avuto un problema simile per il mio progetto ASP.NET core. Github pensava che fosse un repo javascript a causa della quantità di file js nella cartella www. L'aggiunta del file .gitattributes con [webprojectfolder] / wwwroot / * linguist-vendored ha risolto il problema. Grazie.
Mustafa

63

Come menzionato nella pagina della guida di GitHub

GitHub utilizza la libreria Linguist open source per determinare i linguaggi dei file per l'evidenziazione della sintassi e le statistiche del repository.
Alcuni file sono difficili da identificare e talvolta i progetti contengono più file di libreria e fornitore rispetto al codice principale.

Quindi è necessario verificare con github/linguist#troubleshootingper risolvere questa situazione.

Le percentuali sono calcolate in base ai byte di codice per ogni lingua come riportato dall'API List Languages .
Se la barra segnala una lingua che non ti aspetti:

  • Fare clic sul nome della lingua nella barra delle statistiche per visualizzare un elenco dei file identificati come quella lingua.
  • Se vedi file che non hai scritto, considera di spostare i file in uno dei percorsi per il codice in vendita o utilizza la funzione di sostituzione manuale per ignorarli.
  • Se i file vengono classificati in modo errato, cerca i problemi aperti per vedere se qualcun altro ha già segnalato il problema. Tutte le informazioni che puoi aggiungere, in particolare i link ai repository pubblici, sono utili.
  • Se non sono presenti problemi segnalati di questa classificazione errata, aprire un problema e includere un collegamento al repository o un campione del codice che viene classificato erroneamente.

Aggiornamento febbraio 2017 (un anno dopo):

L'articolo " Come cambiare la lingua del repository in GitHub " di Monica Powell

Dopo aver cercato come risolvere GitHub classificando erroneamente la lingua dei tuoi progetti, ho scoperto che la soluzione è semplice come dire a GitHub quali file ignorare.

Sebbene tu voglia ancora eseguire il commit di questi file su GitHub e quindi non puoi usare un .gitignore , puoi dire al linguista di GitHub quali file ignorare in un .gitattributesfile

static/* linguist-vendored

Questo file di una riga diceva a GitHub di ignorare tutti i miei file nella mia static/cartella, dove sono archiviati CSS e altre risorse per un'app Flask

La sezione "Utilizzo .gitattributes" illustra come contrassegnare le lingue sbagliate.
Per esempio:

Il controllo del codice che non hai scritto, come le librerie JavaScript, nel tuo repository git è una pratica comune, ma questo spesso gonfia le statistiche della lingua del tuo progetto e può persino causare l'etichetta del tuo progetto come un'altra lingua .
Per impostazione predefinita, Linguist tratta tutti i percorsi definiti in vendor.ymlcome venduti e quindi non li include nelle statistiche della lingua per un repository.

Utilizza l'attributo fornitore linguista per percorsi fornitore o non fornitore.

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

Ha funzionato per me, anche se ora mi chiedo come potrebbe ancora funzionare su GitHub se .gitattribute è in .gitignore poiché GitHub ovviamente ha bisogno del file ma non lo voglio più nel mio repository ...
Dave Everitt

1
.gitattributes e non .gitattribute
Derzu

non sapeva che esistesse .gitattributes. Grazie +1
scipsycho

31

Per semplificare, lasciami condividere i miei passaggi:

  1. Cambia directory nella cartella principale del tuo progetto;

  2. Crea un file denominato .gitattributes utilizzando strumenti whaterver di tua scelta:

    tocca .gitattributes

  3. Modifica il file seguendo le istruzioni della libreria Linguist per dire a Github come fare, ad esempio:

    vi .gitattributes

    Usa linguist-vendored può consentire a GitHub di "saltare" il rilevamento per questa cartella e sottocartelle:

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

    Utilizza l'attributo linguist-documentation per contrassegnare o deselezionare i percorsi come documentazione:

    project-docs/* linguist-documentation

    OPPURE contrassegnare un singolo file contenente la documentazione

    documented_code.rb linguist-documentation=true

    Questo è un po 'strano ma puoi farlo anche - per dire a Github di trattare alcuni file con un'estensione specifica (ad esempio * .rb) come Java:

    *.rb linguist-language=Java

  4. Git aggiungi, esegui il commit e poi invialo a Github, l'etichetta verrebbe corretta quasi immediatamente.


Ha funzionato per me, ho aggiunto le righe seguenti al mio file .gitattributes *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani

15

Sostituisci il tuo .gitattributes con questo, che riclassifica tutti i file come Java.

 *.* linguist-language=Java

linguista


8

Crea il file .gitattributes nella radice della tua cartella. Supponi di volere che la lingua sia Java, basta copiare e incollare

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

nel file .gitattributes e spingere il file nel repository. Aggiorna la tua pagina GitHub per vedere il cambio di lingua.

Nota : quindi, per la lingua desiderata, rendila vera e l'altra falsa. Dovrebbe funzionare bene


2

Avevo un progetto che è stato avviato in Objective-C e cambiato completamente in Swift (nuovo progetto ma nella stessa directory del repository). Github continuava a identificarlo come Objective-C, indipendentemente da ciò che ho inserito in gitattributes. (tutte le soluzioni sopra)

Quindi, se la maschera è finita, e sei sicuro che tutto il progetto sia una lingua, metti radicalmente:

inserisci qui la descrizione dell'immagine

Solo questo ha risolto il problema :)


2

Nel file .gitattributes basta dire a Linguist di non determinare le lingue dei file che non vuoi.

Esempio per ignorare i file Javascript.

*.js linguist-vendored

2

È possibile evitare il rilevamento di lingue impreviste (per estensione o per sottocartella del progetto, ecc.) Utilizzando l' opzione rilevabile del linguista github: nel file .gitattributes :

Solo i linguaggi di programmazione sono inclusi nelle statistiche del linguaggio. Le lingue di tipo diverso (come definito in languages.yml) non sono "rilevabili" e pertanto non vengono incluse nelle statistiche della lingua.

Utilizza l' linguist-detectableattributo per contrassegnare o deselezionare i percorsi come rilevabili:

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

2

Se vuoi cambiare la lingua del repository Laravel, aggiungi la seguente riga al tuo .gitattributesfile:

*.blade.php linguist-vendored

GitHub definisce i file blade come html, ma *.html linguist-vendorednon funziona.


1

La soluzione fornita dall'esperto EamonnM che ha risposto a questa domanda sopra ha funzionato nel mio progetto, ma ci sono due cose significative.

  1. La lingua all'inizio della seconda riga del suo codice era la lingua che desideri invece della lingua che non ti piace. Ricordati di distinguerlo.

  2. Sembra che non sia possibile digitare alcuno spazio prima del file *. (Ad esempio, dovrei digitare *.swift linguist-vendored=falsequando voglio cambiare la mia lingua in swift.)


0

Crea un file denominato .gitattributes nella cartella principale del progetto. L'aggiunta {file_name} linguist-generated=truepuò fare il trucco. Nel mio caso,

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

ha funzionato per me.


0

Ho problemi anche con questo. Ho creato .gitattributes nella root del mio progetto. Ho rimosso .js e .cs, ma .html è ancora lì. Questo è il mio .gitattributes:

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

Quando aggiungo * linguist-vendored non vedo nulla su GitHub.

Grazie per l'aiuto.

inserisci qui la descrizione dell'immagine

Risposta:

Sempre lo stesso, .html è ancora mostrato


0

La risposta è molto semplice:

basta aggiungere queste righe nel terminale del progetto

  1. touch .gitattributes dopo aver scritto questo comando, questo file -.gitattributes- dovrebbe essere trovato. Se questo file non appare, prova a mostrare i file nascosti per trovarlo.
  2. *.* linguist-language=Java Cambia Java con la tua lingua di destinazione -Swift nel tuo caso-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Ora dopo l'aggiornamento della pagina Github dovresti trovare il nuovo aggiornamento.

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

project-docs/* linguist-documentation

4
Puoi aggiungere qualche spiegazione con la tua dichiarazione in codice ??
Stephan Hogenboom
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.