2010-09-03 17 views
251

Sono consapevole dell'uso del file .gitignore per escludere alcuni file da aggiungere, ma ho diversi file config.php nell'albero dei sorgenti e devo escludere solo uno, che si trova nella radice mentre altri tenere sotto controllo di revisione.Come escludere il file solo dalla cartella radice in Git

Che cosa dovrei scrivere in .gitignore affinché ciò accada?

risposta

382

Dal documentation:

Se il modello non contiene uno slash /, Git considera come un modello di glob guscio e controlli per una partita contro il percorso relativo alla posizione del file .gitignore (relativo al livello superiore dell'albero di lavoro se non da un file .gitignore).

Una barra iniziale corrisponde all'inizio del nome del percorso. Ad esempio, "/*.c" corrisponde a "cat-file.c" ma non a "mozilla-sha1/sha1.c".

così si dovrebbe aggiungere la seguente riga alla radice .gitignore:

/config.php 
+1

Grazie! L'ho provato in questo modo, ma per qualche motivo non ha funzionato. Probabilmente è stato digitato erroneamente qualcosa =) –

+1

E se non si tratta di un file, ma di una cartella, e voglio ignorare quella cartella nella root di repository, i suoi file contenuti e tutte le sottocartelle discendenti e i loro file? '/ Cartella /'? – CoDEmanX

+3

Qualunque '/ cartella /' o '/ cartella' funzionerebbe, ma l'aggiunta della barra alle estremità limita la corrispondenza solo alle cartelle. Se avessi un file chiamato 'foo' nella directory root, '/ foo /' non lo ignorerebbe, ma '/ foo' lo farebbe. – tehDorf

64

Utilizzare /config.php.

8

Se la soluzione di cui sopra non funziona per voi, provate questo:

#1.1 Do NOT ignore file pattern in any subdirectory 
!*/config.php 
#1.2 ...only ignore it in the current directory 
/config.php 

########################## 

# 2.1 Ignore file pattern everywhere 
config.php 
# 2.2 ...but NOT in the current directory 
!/config.php 
15

più vecchio versioni di Git richiede per prima cosa definite un pattern ignore e immediatamente (nella riga successiva) definite l'esclusione. [Testato nella versione 1.9.3 (Apple Git-50)]

versioni
/config.php 
!/*/config.php 

successive richiedono solo il seguente [testato su versione 2.2.1]

/config.php 
Problemi correlati