2014-07-10 13 views
10

Questo è il mio .gitignore:git ignorare tutti i file ad eccezione di una struttura di estensione e la cartella

#ignore all kind of files 
* 
#except php files 
!*.php 

Tutto quello che voglio è di ignorare ogni tipo di file, tranne quelli .php, ma con questo .gitignore Sono ignorando anche le cartelle ...

C'è un modo per dire a git di accettare la struttura della mia cartella di progetto mantenendo la traccia solo dei file .php?

Sembra che ora non posso aggiungere cartelle al mio repo:

[email protected]:~/workspace/motor$ git add my_folder/ 
The following paths are ignored by one of your .gitignore files: 
my_folder 
Use -f if you really want to add them. 
fatal: no files added 
+0

git tiene traccia solo i file non directory. Se ignori tutto il file nella directory non verrà aggiunto al progetto. – FDinoff

+0

Ho modificato la mia domanda, sembra che ora non posso aggiungere quella cartella. – vivoconunxino

+0

Cosa c'è nella directory? – FDinoff

risposta

10

Questo è semplice, basta aggiungere un'altra voce !my_folder nel .gitignore

#ignore all kind of files 
* 
#except php files 
!*.php 
!my_folder 

L'ultima riga avrà speciale cura di my_folder e non ignorerà alcun file php al suo interno; ma i file all'interno di altre cartelle saranno comunque ignorati a causa del primo pattern di *.

EDIT

penso che ho letto male la tua domanda. Se si desidera ignorare tutti i file tranne .php file, è possibile utilizzare

#ignore all kind of files 
*.* 
#except php files 
!*.php 

Questo non ignorerà qualsiasi tipo di file che non ha un'estensione (ad esempio: se avete README e non README.txt), e ignorerà qualsiasi cartella con un . nel suo nome (esempio: directory denominata module.1).

FWIW, git doesn't track directories, e quindi non v'è alcun modo per specificare ignorare le regole per la directory del file vs

+0

grazie, funziona. Ma potrebbe essere possibile non ignorare nessuna cartella anche se non la specificiamo in .gitignore? – vivoconunxino

+0

@vivoconunxino Controllare le modifiche. –

+0

Grazie mille per la tua spiegazione, per quanto ne so ora, le regole gitignore non fanno differenza tra cartelle e file. Se avessimo un modo per dire "questa regola è per i file" o "questa regola è per le directory" .. – vivoconunxino

Problemi correlati