2009-07-21 12 views
24

solito faccio questo:lavorare con .git/info/escludere troppo tardi

git init 
git add . 
git commit . 

E poi mi rendo conto che si tratta di aggiungere la mia directory nbproject, che voglio escluso/ignorato. A volte, controllo anche in questa directory. Se l'avessi aggiunto a .git/info/exclude prima di eseguire git add., Tutto funziona correttamente (è escluso).

Quindi quindi modifico .git/info/exclude e quindi è troppo tardi. git non rispetta più le modifiche a .git/info/exclude.

Quindi le domande sono:

  1. Come posso ottenere git a raccogliere le modifiche nel file escludere nella checkin? (Ho provato a eseguire git add. Di nuovo, che non aiuta)
  2. Diciamo che controllo una directory (o file) che voglio escludere. Qual è il numero minimo di passaggi per arrivare allo stato che voglio (con il file escluso).

risposta

37

Per rimuovere un file che è stato aggiunto, ma non commesso, utilizzare un comando come questo:

git rm --cached file.to.remove 

Questo eliminerà il file dall'indice, ma non toccare il file su disco.

Per rimuovere un file (oi file) dal più recente commit, utilizzare il sopra git rm --cached comando seguito da git commit --amend.

+0

Eccellente. L'indice si riferisce al repository o al materiale che sta per essere registrato? –

+0

L'"indice" fa riferimento a un'area di gestione temporanea che è impegnata nel repository nella successiva operazione di commit. –

+0

Eccellente, ho capito ora riguardo all'indice/cache. Vedo che hai aggiornato la tua risposta, ma aspetterò ancora un'ora prima di contrassegnarla come risposta migliore :) Grazie per la tua rapida e ottima risposta. –