2011-09-26 16 views
10

sto cercando di ignorare le cartelle xcuserdata che XCode 4 modifica e continuano tornare, pur essendo nel mio file .gitignore..gitignore non ignorerà la directory

Il mio file .gitignore come una riga:

xcuserdata 

Eppure, non appena ho cambiato nulla interfaccia utente in Xcode, ottengo questo:

# modified: XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 

Ho fatto un ...

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 

... e ha cercato ...

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata 

... seguito da un commit. L'ho fatto vicino a 10 volte e non andrà via e sarà ignorato. Continua a tornare.

Cosa sto sbagliando? C'è chiaramente qualcosa che non capisco. Il file è stato aggiunto al repository quando l'ho creato per la prima volta e ora sto cercando di sbarazzarmene.

Voglio solo che il file diventi completamente non tracciata, come non era mai stato aggiunto al repository.

risposta

17

Dopo aver fatto

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata 

controllo che git status si dice che i file in quella cartella sono stati cancellati. Quindi dopo il commit, assicurati che git dica che non c'è nulla da impegnare.

Il fatto che avete fatto questo "10 volte" ed ha il suo show come modificati che non si sta facendo bene e la cartella (in realtà i file al suo interno) sono ancora monitorati.

A parte che il contenuto del .gitignore sembra che vada bene e ho anche confermato il mio repo che funziona.

+0

Penso di sapere cosa stava succedendo. Dato che il file è stato modificato, non ha ancora avuto un 'add' fatto su di esso, quindi il 'rm' seguito dal 'commit' non stava prendendo. Non ha senso al 100%, ma una volta che l'ho fatto con il file prima che xcode lo abbia modificato, tutto ha funzionato. –

-3

provare a utilizzare xcuserdata/nella tua .gitignore

+0

provato, non fa differenza. –

2

Se non è possibile spingere il commit solo perché UserInterfaceState.xcuserstate è stata modificata, ecco una soluzione rapida:

  1. aprire la libreria, andare al repository, copiare il codice del commit (qualcosa come f01a2147218d by username)
  2. Aprire il terminale, andate nella cartella del progetto, fare git reset --hard f01a2147218d
  3. Spingere il commit!
Problemi correlati