2012-04-23 15 views
30

Esiste una raccolta di file utili .gitignore a https://github.com/github/gitignore. Ogni file ignora ha un'estensione .gitignore, ad es. Java.gitignore, vim.gitignore. Quando metto questi file direttamente in un workdir, non funzionano.Procedura consigliata per l'utilizzo di più file .gitignore

È necessario creare un singolo file .gitignore e unire i file costitutivi in ​​esso?

Di conseguenza, quando si utilizza un file --global.gitignore, sembra che la configurazione punti a un singolo file. Se ad esempio voglio applicare tutti i file .gitignore in una directory globale /, dovrei unirli manualmente in un unico file? Se è così, è un lavoro extra mantenere aggiornato questo file unito con la raccolta "ufficiale".

Per reiterare, riconosco che possiamo utilizzare diversi file .gitignore in diverse directory, ma non è quello che voglio. Voglio applicare più file .gitignore in un'unica directory.

risposta

30

per chiarire: un progetti gitignore file si chiama .gitignore


Background:

Un .gitignore si riferisce alla directory che si trova, che è sia il livello superiore o discendente di una directory con un .git repository, ovvero una directory ".git /".

Non ci può essere più .gitignore file in qualsiasi sottodirectory, ma la migliore pratica è quella di avere uno .gitignore in una data radice progetti e che hanno sub-directory file di riferimento, se necessario, ad esempio, images/annual/recent Altrimenti è difficile sapere "quale" .gitignore file da guardare per trovare qualcosa che viene ignorato. Dato che puoi usare i pattern come nomi di file che potrebbero essere piuttosto complicati!

Consiglio anche evitando utilizzando un .gitignore file globale che si applica a tutte le progetti sulla vostra macchina, anche se si potrebbe mantenere un modello in giro per l'utilizzo con i nuovi progetti. La considerazione principale qui è che il tuo .gitignore sarà diverso da altri sviluppatori (che possono o non possono esistere) e quindi il risultato è indeterminato. Un esempio di eccezione a questo è l'utilizzo di un file globale .gitignore per file IDE che non desidero in nessun progetto che apro sulla mia macchina, quindi utilizzo uno .gitigore globale con una voce per .idea/files (rubyMine).


L'intento dei modelli che vedete elencato è che normalmente si sta scrivendo il codice di un file di data in una lingua specifica. Detto questo, un modello basato sulla lingua è spesso sufficiente.

Se ci sono più lingue nella base di codice, poi utilizzato sarà necessario combinare s più .gitignore' per quelle lingue, che può essere fatto in una moltitudine di modi come ad esempio:

cat .gitignore1 .gitignore2 > .gitignore # if .gitignore doesn't exist yet 
cat .gitignore1 >> .gitignore # Add to it if it already exists 
paste .gitignore1 .gitignore # Add to it if it already exists 

Hot (ish) spento dalla stampa (estate 2014):

Gitignorer è una semplice utilità che aiuta nella creazione di file .gitignore. Estrae modelli specifici (specificati) .gitignore, con file comuni da escludere, da github.com/github/gitignore, li schiaccia insieme e li salva in un .gitignore nella directory corrente.

Esempio di utilizzo:

gitignorer create c java python 

Gitignorer è attualmente disponibile in AUR sopra a https://aur.archlinux.org/packages/gitignorer/ e su GitHub a https://github.com/zachlatta/gitignorer


+10

Quindi, in sostanza ... sì, sarà necessario copiare manualmente/incolla in un unico file. (a meno che non abbia frainteso questa risposta). –

+2

D'accordo ma sento la necessità di specificare alcuni termini. Stiamo parlando della differenza tra un GLOBAL (cross-repository) .gitignore e un project-root .gitignore (si applica a tutti i file in ONE repo). Un approccio alla radice del progetto ha funzionato meglio anche per me, copiando le voci da un progetto all'altro, se necessario. Un globalgitignore sembra avere un grande potenziale per causare confusione. – moodboom

+0

aggiunto un po 'più informazioni per aiutare la chiarezza. –

Problemi correlati