2009-10-21 20 views
10

voglio ignorare i file eseguibili che non hanno un'estensionegit - ignorare i file basati su modalità

Ad esempio:

gcc -o foo foo.c 

So che potrei aggiungere 'pippo' al mio file .gitignore, ma se decido di cambiare il nome dell'eseguibile, dovrei aggiornare il mio file .gitignore ...

+0

Non è possibile ignorare la modalità file di base (autorizzazioni), ma come dice Jefromi è possibile ignorare tutti i file tranne quelli che hanno un'estensione. –

risposta

8

Sarà davvero meglio per voi mantenere manualmente il gitignore, probabilmente. Si potrebbe fare questo:

* 
!*.* 

escluda tutti, quindi includere il tutto con un, ma ho il sospetto le directory non hanno estensioni "". directory attualmente cingolati sarebbero ancora essere monitorati, naturalmente, ma se si è aggiunto uno nuovo, git-status non avrebbero visto, e che avrebbe dovuto usare add -f per ottenere in.

Non è probabilmente un bene ad assumere tutte le i file senza estensione non dovrebbero essere tracciati, comunque. Si potrebbe finire con un po 'naturalmente - per esempio, README e INSTALL sono piuttosto comuni. È peggio che accidentalmente ignorare un file piuttosto che dover modificare anche il gitignore. La modifica del gitignore potrebbe richiedere alcuni secondi, ma sarà ovvio quando avrai bisogno di farlo. Se accidentalmente ignori un file, potresti facilmente non controllarlo e perdere il lavoro.

10

Di solito gestisco questo utilizzando gli hack del makefile. Nel mio Makefile ho il nome del $ eseguibile (nome) e poi faccio questo:

#first rule 
all: gitignoreadd ... more depends 
    ... some commands ... 

gitignoreadd: 
    grep -v "$(name)" .gitignore > temp 
    echo $(name) >> temp 
    mv temp .gitignore 

gitignoreremove: 
    grep -v "$(name)" .gitignore > temp 
    mv temp .gitignore 

Questa regola può quindi essere solo una dipendenza della marca da qualche parte appropriata. Quindi di solito hai una regola 'make clean' come segue:

clean: gitignoreremove 
    rm *.o *.othergarbagefiles $(name) 

Questo dovrebbe fare il trucco. È un hack ma funziona per me. L'unica cosa è che devi eseguire make clean prima di cambiare il nome per pulire automaticamente tutto.

Problemi correlati