Git Aiutare UserInterfaceState.xcuserstate: attenzione: il conflitto di Unione: File ancora segnato come in conflitto

Ho un progetto a cui ho lavorato in Xcode 4.4.1, e voleva tornare a un precedente Ramo.
(Nota rami non sono complessi, ma rappresentano uno sviluppo lineare)

Quando ho selezionato il precedente ramo c’era un avviso

UserInterfaceState.xcuserstate: warning: Merge conflict: File still marked as conflicted

Tutto sembrava OK, ma tutte le costruire ed eseguire le voci di menu vengono visualizzate in grigio, quindi non posso fare nulla.

Ho provato a ripristinare l’ultimo ramo, e questo è OK, ma c’è ancora un conflitto di Unione
MyProject.xcodeproj/progetto.xcworkspace/xcuserdata/ian.xcuserdatad/UserInterfaceState.xcuserstate: attenzione: il conflitto di Unione: File ancora segnato come conflitto

Ho provato un git status, che non ha aiutato

# Unmerged paths:
...
#   deleted by them:    MyProject.xcodeproj/project.xcworkspace/xcuserdata/ian.xcuserdatad/UserInterfaceState.xcuserstate
#
# Changes not staged for commit:
...
#
#   deleted:    MyProject.xcodeproj/xcuserdata/ian.xcuserdatad/xcschemes/QuollEyeTree.xcscheme

Ho provato un git reset TESTA, ma questo non sembra aiutare, e non so dove andare da qui.

Git è a portata di mano per il codice di verifica con le versioni precedenti, ma mi trovo in difficoltà quando provo a scambiare le versioni.

I miei problemi attuali sembrano peggiorati da quando ho provato a creare uno spazio di lavoro e aggiungere un altro progetto.
Il progetto originale è stato creato con Xcode 3 e il progetto e i file vengono immediatamente sotto la directory del progetto.

EDIT – Risolto

Le risposte di seguito non è riuscito a risolvere il problema, ma entrambi sono stati utili.

Ho salvato il mio codice dalla directory del progetto, rimosso l’ultimo ramo con

git reset --hard HEAD~1

poi copiato i file modificati torna alla directory del progetto

Ho anche aggiornato il mio .gitignore (ho pensato che avevo fatto prima)

OriginaleL’autore Milliways | 2012-08-30

4 Replies
  1. 16

    Ho avuto lo stesso problema che hai avuto dopo aver risolto i miei conflitti e questo è come ho risolto.
    Se si utilizza Xcode per tenere traccia della vostra repo git provare quanto segue.
    1. Ho risolto tutti i conflitti e quindi salvato il file risolti.
    2. Vai a File -> Fonte di Controllo -> Segno Come Risolto

    Voilà Xcode non riconosce più questi file con i conflitti. Speriamo che questo funziona per qualcuno.

    Grazie uomo! Che è la soluzione migliore credo, e ha lavorato come un fascino.

    OriginaleL’autore djm

  2. 5

    Quando c’è un conflitto di unione, è NECESSARIO risolvere prima. (beh, forse è possibile eseguire git merge --abort ripristinare).

    In modo che il processo si apre il file in conflitto, si guarda per il conflitto, risolverlo (modifica il conflitto linee), quindi salvare il file, aggiungere (con git add -u) e commit.

    Quindi si può lavorare su una nuova directory di lavoro.

    Di un conflitto che sembra probabilmente come:

    <<<<<<< yours:sample.txt
    Conflict resolution is hard;
    let's go shopping.
    =======
    Git makes conflict resolution easy.
    >>>>>>> theirs:sample.txt
    

    di riferimento: http://www.kernel.org/pub/software/scm/git/docs/git-merge.html

    Capisco la risoluzione dei conflitti, ma come posso fare per MyProject.xcodeproj/progetto.xcworkspace Questo non è mostrato in Xcode PS Il riferimento sembra molto utile
    Suppongo che si dovrebbe guardare a diversi file elencati, è probabilmente un conflitto. Se nessuno ha appena stage di loro per commettere (cioè eseguire git add) e di impegnarsi. È possibile eseguire un confronto prima di impegnarsi per assicurarsi che i conflitti vengono risolti. Se un file viene eliminato, è possibile utilizzare git reset su di esso. Non mi ricordo esattamente come si dovrebbe usare, ma si può guardare per il suo riferimento doc.

    OriginaleL’autore Vince

  3. 4

    Esecuzione

    git mergetool 
    

    e la risoluzione dei conflitti risolto il problema per me.

    Come nota a margine, io uso il Comando-D per navigare conflitti, scegli un lato in basso a destra FileMerge, allora il Comando-Comando S-Q (su Mac), una volta finito per salvare e uscire.

    Grazie uomo! Questo ha funzionato tutto per me 😀

    OriginaleL’autore Matt Hudson

  4. 1

    In primo luogo, fare una buona abitudine di aggiungere *.xcuserstate e modelli per ignorare l’altro utente specifico file di progetto per il .gitignore. C’è un popolare repo github .gitignore file, di cui uno per Xcode progetti.

    Oltre a risolvere i conflitti di unione (come detto), si dovrebbe anche fare una buona abitudine per stash le modifiche, mentre il checkout-ing diversi capi (rami, tag, ecc).

    OriginaleL’autore hlfcoding

Lascia un commento