2013-04-07 4 views
14

Ho inizializzato il repository git e ho eseguito un primo commit. Ora, in questa directory eseguo ./configure e ./make all in modo da riempire un sacco di file/cartelle extra.come aggiungere tutti i file/cartelle attualmente non tracciabili su git ignore?

Quello che mi piacerebbe fare è aggiungere tutti quei file non tracciati una volta per tutte al mio gitignore. C'è un modo semplice per farlo?

È possibile eliminare alcuni file non necessari come *.o o *.mod specificando le righe appropriate in .gitignore, ma ciò non risolve il problema.

+1

possibile duplicato di [git: come ignorare tutti i file non tracciati presenti?] (Http://stackoverflow.com/questions/11542687/git-how-to-ignore-all-present-untracked-files) – RedX

risposta

28

Prova questo:

git status -s | grep -e "^\?\?" | cut -c 4- >> .gitignore 

Spiegazione: git status -s ti dà una versione breve dello stato, senza intestazione. Il numero grep accetta solo le righe che iniziano con , ovvero i file non tracciati, lo cut rimuove lo ?? e il resto lo aggiunge al file .gitignore.

+0

grazie a sacco! era esattamente quello che stavo cercando – Denis

+2

Il comando ignorerà anche il tuo file '.gitignore'. Se vuoi monitorare il tuo file .gitignore, usa il comando 'git status -s | grep -e "^ \? \?" | grep -v ".gitignore" | cut -c 4- >> .gitignore' – chiborg

+1

Soluzione di Windows per favore! – calbertts

2

Un comando più semplice per farlo è

git ls-files --others --exclude-standard >> .gitignore 

Si potrebbe desiderare di modificare il risultato di sostituire schemi ripetuti con caratteri jolly.