Come aggiungo qualcosa al .gitignore in modo che la partita non è ricorsiva?
Domanda
Come aggiungo qualcosa al .gitignore
in modo che la partita non è ricorsiva?
Per esempio, voglio ignorare la foo
directory e il file bar.txt
nella directory corrente, ma non quelle che esistono in sottodirectory.
Ho provato questo per il mio file .gitignore
:
foo/
bar.txt
Ma purtroppo git applica il presente in modo ricorsivo, in modo che otherdir/bar.txt
e otherdir/foo/
anche ottenere ignorati, che non è quello che voglio.
(Esiste un comando in git che mi mostra tutti i file ignorati, e fare riferimento il file .gitignore
che è responsabile per il file che viene ignorato? Questo sarebbe utile per il debug.)
Soluzione
La soluzione è quello di mettere una barra che porta sulle voci .gitignore
:
/foo/
/bar.txt
(ho pensato che ho provato questo prima di pubblicare su StackOverflow, ma è chiaro che non avevo provato in modo corretto, in quanto questo funziona perfettamente.)
Altri suggerimenti
Dalla pagina di manuale gitignore:
Un prefisso facoltativo! che nega il modello; qualsiasi file corrispondente escluso da un modello precedente diventerà incluso di nuovo. Se un modello negata corrisponde, questo avrà la precedenza inferiori fonti modelli di precedenza.
Così !*
come la prima linea nella vostra .gitignore cancellerà tutti i modelli precedenti.