2011-09-30 18 views
6

So che ci sono molte domande su come ignorare le directory e di solito non ho avuto alcun problema fino ad ora, ma ora sono bloccato con qualcosa che non capisco.Perché git ignora tutti i file in una directory tranne uno?

Qui è la mia struttura di directory:

/src 
/war 
    com.example.MyProject/ 
    WEB-INF/ 
    classes/ 
    deploy/ 
    lib/ 

voglio ignorare il contenuto delle directory classes/, deploy/ e com.example.MyProject/, e qui è il mio file .gitignore:

*.log 
war/WEB-INF/classes/ 
war/WEB-INF/deploy/ 
com.example.MyProject/ 

file sotto com.example.MyProject/ sono automaticamente generato, e git ignora tutti loro tranne per un file denominato com.example.MyProject.nocache.js. In effetti, quando lo faccio git status ottengo:

# On branch myBranch 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# 
#  modified: .gitignore 
#  ...... 
#  modified: war/com.example.MyProject/com.example.MyProject.nocache.js 

Perché git rifiuta di ignorare quel singolo file in quella cartella? Che cosa sto facendo di sbagliato?

risposta

5

Se un file è già stato tracciato da Git, l'aggiunta del file a .gitignore non impedirà a Git di rintracciarlo. Avrai bisogno di fare git rm --cached <file> per mantenere il file nell'albero e quindi ignorarlo

+0

muto me! che era stato accidentalmente aggiunto a un commit precedente: dovevo solo rimuoverlo. Grazie! – MarcoS

+0

E per egit utenti progetto> team> untrack, questo rimuoverà tutti i file in quella cartella (untracking loro) quindi commetterà la modifica –

5

Se il file è già stato aggiunto all'indice, rimarrà comunque lì, anche se lo aggiungi al file .gitignore.

provare a rimuovere il file dall'indice git:

git rm --cached war/com.example.MyProject/com.example.MyProject.nocache.js 

L'opzione --cached fa in modo che il file rimane nella cartella e appena viene rimosso dall'indice

+1

+1 per la spiegazione supplementare: "L'opzione --cached si assicura che il file rimanga nel tuo cartella e viene semplicemente rimosso dall'indice ". –

Problemi correlati