2014-05-08 10 views
5

Utilizzando Xcode 5.x e Git, abbiamo eseguito un commit su questo file: MyProjectName.xccheckout. Abbiamo quindi spinto questo impegno al nostro repository centrale. Ora, quando qualcun altro nel team esegue un pull, viene visualizzato l'errore: "MyProjectName.xccheckout ha avuto un conflitto tra gli alberi"..xccheckout ha avuto un conflitto albero

Ci sono diversi post su questo argomento e sembra che la cosa corretta da fare sia quella di salvare questo file. Ma ora che l'abbiamo fatto, come gestiamo il conflitto?

Questo post Should *.xccheckout files in Xcode5 be ignored under VCS? copre lo stesso problema ma non vede come hanno risolto il conflitto.

  • Aggiornamento: Ho fuso manualmente le modifiche dal repository centrale, verso il basso per la mia copia locale, poi ha cercato di fare di nuovo il Pull ma ha ottenuto lo stesso errore. Ho anche notato che i valori in questo file cambiano di volta in volta ma non sono sicuro di cosa lo stia causando.

  • Aggiornamento: Ecco un esempio del valore che sta cambiando nel file:
    IDESourceControlProjectIdentifier
    3869BFC7-FD51-432F-A70B-CE2ADC0CDF1F

+1

"conflitto ad albero" suona come 'svn' e non' git' ... – trojanfoe

+1

non svn, utilizzando git e bitbucket – timonroe

risposta

4

Avere si tenta di rimuovere il file dal git da

rm YourProjectName.xcodeproj/project.xcworkspace/xcshareddata/YourProjectName.xccheckout 

passo successivo è impegnarsi

git commit -m "remove YourProjectName.xccheckout" 

premere di nuovo dalla macchina in cui il file è stato rintracciato prima.

Questa azione eliminerà .xccheckout dal repository e gli altri membri del team possono tirare.

+0

Abbiamo già rimosso il file dal repository. Sulla base di altri thread relativi a questo argomento, ci stiamo ancora chiedendo se dovremmo anche provare a mantenere questo file sotto il controllo del codice sorgente. Non riesco ancora a trovare un modo per aggirare l'errore "conflitto tra alberi". – timonroe

+0

Questo ha funzionato per me. Basta eliminare/controllare i rami freschi (assicurarsi che non ci sia un blocco in corso) e quindi eliminare il file xccheckout appropriato, eseguire il commit, eseguire l'unione e funziona correttamente. –

+1

non è 'git rm', non' rm'? –

Problemi correlati