online - xcode windows 7




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

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.

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.


J'utilise git dans Terminal pour résoudre ce problème, on utilise mergetool. Premièrement, 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.

J'ai donc décidé d'examiner 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?


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


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.







xcode8