Le contrôle de source Xcode 8 ne montre pas les conflits




git version-control (4)

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 qu'il y a 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

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 à partir 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 je me suis rendu compte que chaque fois que nous avons 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éessayez.

J'ai essayé de tirer à l'aide d'un terminal , mais le fichier en conflit est gâché par des messages git montrant les modifications apportées par le mien et d'autres personnes 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 comme solution de contournement en utilisant le terminal :

  1. Ouvrez le terminal et indiquez au système où résident les utilitaires Xcode:

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
  2. Définissez "opendiff" comme l'outil de fusion par défaut globalement:

    git config --global merge.tool opendiff
  3. Ouvrez Xcode mergetool manuellement et éliminez le conflit de la manière habituelle:

    git mergetool
  4. Enregistrer les modifications, commettre, pousser.


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.


Cela m’arrive encore dans Xcode 8.1, en utilisant Github.

Faire git fetch dans le terminal, puis extraire à nouveau de Xcode semble résoudre le problème pour moi.


mettez à jour votre Xcode avec la dernière version et assurez-vous que vos partenaires ont le même







xcode8