2012-11-15 18 views
12

Ho creato un repository per la mia cartella principale. Questo è il mio .gitignore di file:Git: ignorare inverso (.gitignore)

!.vim/plugin/* 
!.vim/doc/* 
.* 
* 
.viminfo 
.vim/.netrwhist 
.vim-fuf-data/file/stats 
bin/dwm/dwm 

Così, quando creo un nuovo file all'interno .vim/plugin mi aspettavo che dopo git status questo file è stato mostrato, ma no..why?

EDIT: dopo un paio di risposte che ho cambiato la posizione delle inversa ignorando le righe in questo modo al di sotto, ma i problemi è la stessa: i nuovi file che creo all'interno della cartella .vim/plugin non sono mostrati dopo git status ..

.* 
* 
.viminfo 
.vim/.netrwhist 
.vim-fuf-data/file/stats 
bin/dwm/dwm 
!.vim/plugin/* 
!.vim/doc/* 
+1

È 'git st' un alias per' git status'? –

+0

Sì, quando impostato nel file .gitconfig – garyh

+0

Ho provato quei comandi abbreviati, cattiva abitudine da svn ... – Daniel

risposta

17

In linea 4 si sta ignorando con *. Questo ignora il precedente schema di negazione. Dalla man page:

entro un livello di precedenza, l'ultimo pattern matching decide il risultato

Dove "livello di precedenza": fonti diverse per ignorare modelli come .gitignore e $GIT_DIR/info/exclude.

Se si vuole ignorare tutto ma i modelli che iniziano con ! è necessario spostare il * all'inizio del .gitignore


Modifica

ho trovato una soluzione con l'aiuto di another question on SO:

* 
!*/ 
!.vim/plugin/* 
+0

Ho modificato la mia domanda – ziiweb

+0

@tirengarfio Dito, ho modificato la mia risposta. – Deve

+0

sì, ha funzionato grazie! – ziiweb

1

Provare a spostare le righe negate (quelle che iniziano con !) nella parte inferiore del file .gitignore.

Vedi il tutto Examples section here

+0

Ho modificato la mia domanda – ziiweb

0

Un altro modo sarebbe quello di ignorare solo top i file e le directory di livello, e nelle directory whitelist fare lo stesso, se necessario, come nel this answer to a related question

Per esempio il mio .gitignore ora assomiglia a questo

/* 
!.gitignore 
!.vimrc 
!.bashrc 
!.vim/ 
.vim/.netrwhist 
!.gconf/ 
.gconf/apps/* 
!.gconf/apps/gnome-terminal 
!bin/ 

La risposta di Deve rende git molto lento perché cerca tutte le directory sotto il tuo homedir. (Nel caso specifico di utilizzo di git per le impostazioni in homedir)

Problemi correlati