2010-10-12 17 views
11

Ho tirato fuori i miei capelli alla ricerca in rete e vari documenti sui file .gitignore. Sono un po 'di n00b con Unix/Terminale (usando Mac OS X) e non riesco a capire come ignorare il contenuto di una cartella (qualsiasi tipo di contenuto, sia esso un file o un'altra cartella, non importa quanto sia profondo).gitignore e come ignorare un nome di directory comune e il suo contenuto

Sto lavorando a un progetto che genera file di immagine all'interno di una struttura di file coerente, eccetto che stiamo ottenendo conflitti di unione relativi alle autorizzazioni degli utenti. Mi piacerebbe ignorare le cartelle che contengono le immagini generate in modo che possiamo evitare che ogni ulteriore tirata dei capelli debba adeguare i permessi su una base per-pull. Sto solo avendo problemi a far funzionare il file .gitignore, quindi ho bisogno di capire il modello giusto per la corrispondenza dei contenuti della cartella. Voglio che sia abbastanza generale in quanto può facilmente comprendere l'intero sito (quindi se una cartella contiene un particolare nome di cartella, ignorerà il suo contenuto).

ho provato:

# Images 
resample/ 
resize/ 
min/ 

E ...

# Images 
resample/* 
resize/* 
min/* 

E ...

# Images 
*/resample/* 
*/resize/* 
*/min/* 

E molte altre combinazioni con risultati insoddisfacenti. Non ho mai avuto il modello foldername/**/* per funzionare mai. Qualsiasi aiuto in merito a questo problema sarebbe più apprezzato!

+1

Il primo esempio dovrebbe funzionare. Ma è case sensitive, sei sicuro che i nomi delle cartelle siano tutti in minuscolo? –

+0

Sì, è tutto in minuscolo. –

risposta

23

Grazie ai poster precedenti per il loro aiuto. Dopo alcuni approfondimenti, ho scoperto come implementare correttamente le nuove regole .gitignore. Il problema era che in precedenza le immagini venivano monitorati, così ho dovuto rimuovere il riferimento ai file all'interno del file .git/index, in questo modo ...

// Remove all tracked files from the index 
// (doesn't remove the file, just the reference) 
git rm -r --cached . 

// Add all the files again 
// (files and folders specified by .gitignore aren't added to the index) 
git add . 

// Commit to save changes 
git commit -am "gitignore update" 
+0

Grazie per aver aggiunto questo. Sto per iniziare a usare git da solo, questo è tutto il necessario per sapere cose. – kevpie

+2

Penso che non hai bisogno di '-a' nei tuoi flag di commit se hai già aggiunto i file. – Noich

8

Siete alla ricerca di gitignore

Un file gitignore specifica file intenzionalmente non monitorate che git dovrebbe ignorare. Nota che tutti i file di gitignore riguardano solo file che non sono già tracciati da git;

Se il file o la cartella si trova nel repository, è necessario eliminarlo dal repository per renderlo ignorabile.

Controllare anche la sensibilità dei casi nei modelli.

Il tuo primo elenco dovrebbe funzionare supponendo che quelle cartelle non siano attualmente in controllo di versione.

# Images 
resample/ 
resize/ 
min/ 
+0

Grazie per quello. Dopo ulteriori ricerche e sperimentazioni, ho scoperto un paio di cose interessanti ... –

Problemi correlati