2016-05-26 1 views
0

J'ai donc caché mes modifications pour mon projet Swift afin que je puisse faire une demande de traction puis fusionner les modifications que j'ai faites avec le nouveau tirage. Cependant, chaque fois que j'essaie de fusionner mes modifications, j'obtiens un conflit de fusion, concernant le fichier XCode UserInterfaceState.xcuserstate. Rien de ce que j'essaie ne me permet de fusionner mon code caché, et je crains de perdre un après-midi de code.Fusionner le conflit tout en essayant de fusionner du code caché

J'ai essayé d'ajouter * .xcuserstate à .gitignore, mais cela n'a pas semblé faire quoi que ce soit. J'ai alors essayé de supprimer le fichier, qui a créé un conflit de modification/suppression de la version dans la cachette. Voici l'erreur que je reçois lorsque je tente d'obtenir le code planqué:

$ git stash apply 
CONFLICT (modify/delete): myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate left in tree. 

Essayer ce qui coule recommandé ce fut la sortie reçue:

$ git reset --hard 
HEAD is now at e509ffa Fixed bugs 
$ git stash pop 
myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate: needs merge 
unable to refresh index 

$ git rm myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate 
myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate: needs merge 
rm 'myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate' 
$ git stash pop 
CONFLICT (modify/delete): myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of myProj.xcodeproj/myProj.xcworkspace/xcuserdata/lnd.xcuserdatad/UserInterfaceState.xcuserstate left in tree. 

Y at-il quelque chose que je peux faire pour corriger ce? Rien ne semble fonctionner, donc toute aide serait grandement appréciée, merci.

+0

La modification du fichier en question est-elle nécessaire? Ou devrait-il être retiré comme il l'a été en amont? Si ce n'est pas nécessaire, après avoir appliqué votre cachette et vu le conflit, supprimez le fichier de votre système de fichiers, exécutez: 'git rm ' et validez les modifications. – Andonaeus

+0

Avez-vous un fichier non fusionné? Voir ce lien: [impossible d'actualiser l'index] (http://stackoverflow.com/questions/9739352/git-stash-pop-needs-merge-unable-to-refresh-index). Assurez-vous que votre arbre de travail est propre en utilisant 'git status'. Sinon, résolvez et validez le conflit avant de refaire le pop – Flows

+0

@Andonaeus J'ai essayé de supprimer le fichier, mais il a fini par provoquer un conflit de modification/suppression. J'ai posté la réponse dans mon post original. – shadowarcher

Répondre

1

Vous pouvez essayer cette

maître Reset avec --hard option pour origin/master

Appliquer la planque avec stash pop

Git devrait vous dire qu'il ya un conflit. Editez le fichier UserInterfaceState.xcuserstate pour voir le conflit et corrigez-le.

git commit 

Si cela ne fonctionne pas, pourriez-vous coller toute la sortie git des commandes?

+0

J'ai modifié mon message original avec la sortie des commandes. – shadowarcher

+0

@shadowarcher. Ça marche? – Flows