Je dois parfois faire des git merges sur la console. Jusqu'à présent, pour résoudre les conflits, j'utilisais FileMerge de Xcode 3 (vous pouvez l'ouvrir sur la console en utilisant la commande 'opendiff'). Si des conflits apparaissent, j'utilise 'git mergetool' qui invoque automatiquement opendiff pour chacun des fichiers en conflit.
Cependant, Xcode 4 dispose d'un composant mergetool beaucoup plus agréable pour résoudre les conflits. Je crois que ce composant fait partie de l'exécutable Xcode 4, plutôt que autonome. Il vous permet de prévisualiser le fichier fusionné et de modifier directement le code fusionné au cas par cas, ce qui rend la fusion des conflits complexes incroyablement rapide et satisfaisante.
Existe-t-il un moyen d'utiliser l'outil de fusion Xcode 4 lors de l'appel de 'git mergetool' à partir du terminal?
Je ne trouve pas d'exécutable pour cet outil dans le bundle Xcode 4. Tout hack qui y parviendrait serait le bienvenu.
Réponses:
opendiff prend deux arguments de nom de fichier, et un paramètre --ancestor avec un troisième nom de fichier, pour produire un diff à trois voies, et un paramètre --merge pour dire le fichier de sortie à utiliser pour la résolution des conflits.
Alors allez:
Cela devrait permettre à git d'utiliser opendiff comme outil de fusion, lorsqu'il y a des conflits de fusion.
Cela dit, je préfère de beaucoup DiffMerge de SourceGear , qui est un outil gratuit de fusion et de fusion à trois voies qui fait beaucoup mieux, la résolution de conflits orientée vers les mots. Et dans la documentation de DiffMerge, il y a quoi dire à git pour en faire l'outil de différenciation et de fusion par défaut.
la source
Vous pouvez éditer dans l'éditeur de texte (très basique) de FileMerge en ouvrant le volet de l'éditeur - qui est fermé par défaut. Pour ouvrir l'éditeur dans FileMerge, faites glisser le point situé sous la colonne diff centrale vers le haut pour ouvrir le volet de l'éditeur.
la source
Cela a fini par travailler pour moi
la source