Une fois que Xcode a été mis à jour vers la version 8.0 (8A218a), je ne parviens pas à extraire les modifications du référentiel git de Xcode uniquement lorsque certains fichiers sont en conflit. Nous travaillons tous sur la même branche.
Tant qu'il n'y a pas de conflits, tout fonctionne parfaitement et je peux m'engager, tirer et pousser.
Mais j’ai compris que chaque fois qu’il y avait un conflit dans certains fichiers, Xcode ne montre plus de conflits. Il ferme simplement la fenêtre déroulante sans afficher la fenêtre de résolution des conflits. Aucune information ou quoi que ce soit. Je ne vois pas le
Tirez avec succès
message. Et je ne peux pas pousser mon commit (car les modifications ne sont pas tirées) pour obtenir le message:
Assurez-vous que toutes les modifications ont été extraites du référentiel distant et réessayer
J'ai essayé de tirer à l'aide de terminal, mais le fichier en conflit est gâché par des messages git indiquant à moi et à d'autres personnes les modifications apportées dans le même fichier en conflit le long de ces messages. Et les fichiers sur lesquels d'autres personnes travaillaient sont maintenant affichés comme mes propres modifications/ajouts.
J'ai également essayé de mettre à jour git vers la version la plus récente, qui est actuellement la 2.10.0. Pas de chance non plus.
Je finis donc par supprimer ma copie, cloner le dernier en date et appliquer à nouveau les modifications apportées, ce qui est très pénible.
Quelqu'un at-il une solution pour cela?
EDIT: Voici ce que vous pouvez faire en tant que solution de contournement à l'aide du terminal:
Ouvrez le terminal et indiquez au système où résident les utilitaires Xcode:
Sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
Définissez "opendiff" comme l'outil de fusion par défaut globalement:
git config --global merge.tool opendiff
Ouvrez Xcode mergetool manuellement et éliminez le conflit de la manière habituelle:
git mergetool
Enregistrer les modifications, commettre, pousser.
J'utilise git dans Terminal pour résoudre ce problème, mergetool est utilisé .. __, d'abord, je tire quelques changements, mais oups, pas à jour:
git fetch Origin
git pull Origin master
From ssh://[email protected]:22/projectname
* branch master -> FETCH_HEAD
Updating a030c3a..ee25213
error: Entry 'filename.c' not uptodate. Cannot merge.
Alors soyez à jour et essayez à nouveau, mais ayez un conflit:
git add filename.c
git commit -m "made some wild and crazy changes"
git pull Origin master
From ssh://[email protected]:22/projectname
* branch master -> FETCH_HEAD
Auto-merging filename.c
CONFLICT (content): Merge conflict in filename.c
Automatic merge failed; fix conflicts and then commit the result.
Je décide donc de regarder les changements:
git mergetool
utiliser mergetool pour fusionner le conflit
changes...no...their changes...
git checkout --ours filename.c
git checkout --theirs filename.c
git add filename.c
git commit -m "using theirs"
Et puis on essaie une dernière fois
git pull Origin master
From ssh://[email protected]:22/projectname
* branch master -> FETCH_HEAD
Already up-to-date.
réponse de: Comment résoudre les conflits de fusion dans Git?
La séquence d'actions suivante résout ce problème:
Quitter Xcode
Ouvrez Terminal et cd dans le dossier du projet
git checkout -.
git pull
Regardez le résultat de la commande pull. Il devrait annoncer l'existence d'un conflit dans l'un des fichiers . Ouvrez ce fichier dans un éditeur externe (pas Xcode). Le fichier doit maintenant contenir des marqueurs spéciaux décrivant le conflit (ils ont été ajoutés par GIT) Les marqueurs ressemblent à ceci:
<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
Supprimer les marqueurs et résoudre le conflit
git add [nom du fichier]
git commit -m "conflit dans [nom du fichier] résolu"
git Push
Veuillez mettre à jour vers Xcode 8.2.1
J'ai eu le même problème. Mais il est résolu une fois que j'ai mis à jour ma version de Xcode vers la version 8.2.1.
Aujourd'hui, j'ai résolu tous les conflits auxquels je faisais face avec Xcode version 8.1.
mettez à jour votre Xcode avec la dernière version et assurez-vous que vos partenaires ont également la même version