2013-06-26 18 views
21

Non riesco a escludere il file di stato dell'interfaccia utente dal commit.Impossibile escludere lo stato dell'interfaccia utente da commit in xcode

Ogni volta che provo a eseguire il push su github, mi chiede di eseguire il commit per primo e inserire il file di stato dell'interfaccia utente nelle modifiche (anche se non ho spostato il mouse o l'interfaccia), è comunque mostrato che esegue il commit!).

Ho provato diversi metodi, descritti in altri argomenti simili. Ad esempio, ho provato ad aggiungere tutti i possibili casi di interfaccia utente nel .gitignore in radice, in questo modo:

*.xcuserstate 
project.xcworkspace 
xcuserdata 
UserInterfaceState.xcuserstate 
project.xcworkspace/ 
xcuserdata/ 
UserInterface.xcuserstate 

Non ha funzionato. Ho provato a pulire la cache e ripristinare git, non ha aiutato.

comando di stato Git dice il seguente: "modificato: .xcodeproj/project.xcworkspace/xcuserdata/.xcuserdatad/UserInterfaceState.xcuserstate"

E sembra che questo

Si prega di aiutare (è facendomi impazzire)!

risposta

31

Se questi file sono già stati impegnati, è necessario rimuoverli dall'indice prima di visualizzare il file .gitignore.

git rm --cached *.xcuserstate 
# or 
git rm -r --cached project.xcworkspace 
+0

Ha funzionato, grazie! Spero che rimanga così – titicaca

17

Per aggiungere alla risposta di VonC dopo aver chiamato -rm si hanno anche per impegnarsi e quindi spingere (fate questo nel terminale prima di toccare Xcode o è strumenti Git di nuovo), che ha risolto il mio problema.

Così

git rm --cached *.xcuserstate 
git commit -m "Removed cached files" 
git push 

Poi si può toccare di nuovo Xcode

+1

Il commit dalla riga di comando è ciò che ha risolto per me. – smacdonald