Dovresti impegnare .gitignore nei repository Git?


497

Pensi che sia una buona pratica impegnare .gitignore in un repository Git?

Ad alcune persone non piace, ma penso che sia buono in quanto puoi tenere traccia della cronologia del file. No?


38
in caso contrario, inserisci .gitignore in .gitignore ...
CharlesB,

Possibile duplicato di Ignora il file
.gitignore

Risposte:


489

Normalmente sì, .gitignoreè utile per tutti coloro che vogliono lavorare con il repository. A volte vorrai ignorare altre cose private (forse crei spesso LOGo qualcosa del genere. In quei casi probabilmente non vorrai forzarlo su nessun altro.


137
+1 Le "cose ​​private" possono essere menzionate nei file $GIT_DIR/info/excludeo ~/.gitconfigcome appropriato.
Leggi il

5
Se hai già registrato un file e vuoi ignorarlo, Git non ignorerà il file se aggiungi una regola in seguito. In questi casi, devi prima rintracciare il file, eseguendo il seguente comando nel tuo terminale:git rm --cached FILENAME
eli-bd

133

In genere ti impegni .gitignore. In effetti, personalmente mi spingo al punto di assicurarmi che il mio indice sia sempre pulito quando non lavoro su qualcosa. (non git statusdovrebbe mostrare nulla.)

Ci sono casi in cui vuoi ignorare cose che in realtà non sono specifiche del progetto. Ad esempio, il tuo editor di testo potrebbe creare *~file di backup automatici o un altro esempio potrebbero essere i .DS_Storefile creati da OS X.

Direi che se altri si lamentano di quelle regole che ingombrano le tue .gitignore, lasciatele fuori e invece inseriscile in un file di esclusioni globale.

Per impostazione predefinita, questo file si trova in $XDG_CONFIG_HOME/git/ignore(predefinito su ~/.config/git/ignore), ma questa posizione può essere modificata impostando l' core.excludesfileopzione. Per esempio:

git config --global core.excludesfile ~/.gitignore

Basta creare e modificare il file di esclusione globale in base al contenuto del tuo cuore; si applicherà a tutti i repository git su cui lavori su quella macchina.


14
Puoi sempre aggiungere # some commentrighe al .gitignorefile per spiegare perché stai ignorando qualcosa. Commentando ogni linea è un po 'eccessivo, ma non ho sono le sezioni etichettato # IDE (Eclipse), # OS (Mac OS X)e # Generated (Perl). In questo modo, se qualcuno desidera utilizzare un sistema operativo o IDE diverso, può aggiungere una sezione e tutti possiamo condividerli.
Stuart R. Jefferys,

9
pollice in alto per "Personalmente vado al punto di assicurarmi che il mio indice sia sempre pulito quando non sto lavorando su qualcosa (lo stato git non dovrebbe mostrare nulla.)"
SGhosh

4
Nb. con Git moderno il valore predefinito core.excludesfileè è ~/.config/git/ignore, conforme alle specifiche della directory di base XDG
Jakub Narębski,

1
+1 per globale .gitignore: estremamente utile quando le persone con cui lavori non sono d'accordo sul contenuto dei .gitignorefile push o se debbano essere inviati, e tutti noi utilizziamo tonnellate di ambienti di sviluppo diversi che generano diversi tipi di rumore.
Krease

1
davidwalsh.name/global-gitignore alcune ulteriori informazioni sull'ignor globale
Frode Akselsen

11

Ho messo commit .gitignore, che è una cortesia per gli altri che potrebbero costruire il mio progetto che i seguenti file sono derivati ​​e dovrebbero essere ignorati.

Di solito faccio un ibrido. Mi piace fare in modo che makefile generi il file .gitignore dal momento che il makefile conoscerà tutti i file associati al progetto o derivati. Quindi avere un progetto di livello superiore .gitignore che si effettua il check-in, che ignorerebbe i file .gitignore generati creati dal makefile per le varie sottodirectory.

Quindi nel mio progetto, potrei avere una sottodirectory bin con tutti gli eseguibili creati. Quindi, farò in modo che il mio makefile generi un .gitignore per quella directory bin. E nella directory principale .gitignore che elenca bin / .gitignore. Quello in alto è quello che controllo.


0

Commettere .gitignore può essere molto utile, ma vuoi assicurarti di non modificarlo troppo in seguito, specialmente se passi regolarmente da un ramo all'altro. In tal caso potresti ottenere casi in cui i file vengono ignorati in un ramo e non nell'altro, costringendoti a passare manualmente a eliminare o rinominare i file nella directory di lavoro perché un checkout non è riuscito poiché sovrascriverebbe un file non tracciato.

Quindi sì, commetti il ​​tuo .gitignore, ma non prima di essere ragionevolmente sicuro che non cambierà molto da quel momento in poi.


-6

È buona norma .gitignore almeno i prodotti di costruzione (programmi, * .o, ecc.).


11
Che non ha risposto alla domanda: dovrebbe .gitignore essa stessa essere " .gitignore'd"?
Charles Wood,

6
Prestare attenzione, che non era la domanda, e questo fa risposta ciò che è stato chiesto: "è [it] una pratica buona per commettere .gitignore in un repo Git?".
papercowboy,

5
@cayuu credo che la risposta dice "è una buona pratica .gitignore" xyz, non vedo come risponde alla domanda. la domanda è se .gitignore dovrebbe essere controllato o meno dalla versione.
ntotografo
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.