Je sais que je peux voir la différence entre HEAD et l'état actuel avec meld .
. Mais comment puis-je voir les différences entre les branches, par exemple master
etdevel
avec meld?
Pour le moment, je fais les étapes suivantes:
- Renommer le dossier de la copie de travail
Par exemplemv /projectA /projectA_master
) - Cloner à nouveau le projet
git clone url
- Passer en
devel
succursale
cd projectA && git -b devel origin/devel
- Voir les différences avec meld
meld /projectA_Master projectA
N'y a-t-il pas un moyen plus simple d'obtenir le même résultat en fusion? Je n'en ai besoin que pour examiner les changements et pas principalement pour la fusion.
Réponses:
J'ai également trouvé ce problème ennuyeux, j'ai donc créé git meld qui permet un moyen plus confortable de différencier les commits arbitraires par rapport à l'arbre de travail ou à la zone de préparation. Vous pouvez le trouver sur https://github.com/wmanley/git-meld . C'est un peu comme le script de Mark mais fonctionne pour comparer n'importe quel commit arbitraire ou la zone de préparation ou le répertoire de travail avec l'un des autres. Si l'une des choses que vous comparez est l'arbre de travail, alors c'est également en lecture-écriture pour que vous ne perdiez pas vos modifications.
la source
Court et doux:
Cela configure Git pour l'utiliser
meld
comme outil de comparaison. (Vous n'avez pas besoin de spécifier les arguments de ligne de commande, la prise en charge demeld
est intégrée à Git.)Ensuite, si vous voulez un diff graphique au lieu d'un texte, vous appelez simplement à la
git difftool
place degit diff
(ils prennent tous les deux les mêmes arguments). Dans ton cas:Mise à jour: Si vous ne voulez pas le diff un fichier à la fois, mais que vous voulez plutôt utiliser la vue «sous-répertoire» de meld avec toutes les modifications entre les deux branches, notez l' option
-d
ou--dir-diff
pourgit difftool
. Par exemple, lorsque je suis sur la branche XYZ et que je veux voir ce qui est différent entre ceci et la branche ABC, je lance ceci:la source
À partir de git v1.7.11, vous pouvez utiliser
git difftool --dir-diff
pour effectuer une différence de répertoire. Ce qui fonctionne assez bien avec les scripts meld wihout https://github.com/wmanley/git-meld .Configurer git
Utilise le
Pour macOS
la source
Ctrl+s
- la bonne partie, votre fichier est modifié.Il est important de dire qu'en utilisant,
git difftool -d
vous pouvez toujours modifier vos fichiers de travail dans Meld et les enregistrer . Pour y parvenir, vous devez comparer une branche à votre arbre de travail actuel, par exemple:Meld montrera que les répertoires gauche et droit se trouvent dans / tmp. Cependant, les fichiers dans le bon répertoire sont en fait des liens symboliques vers vos fichiers dans le répertoire de travail actuel (ne s'applique pas à Windows). Vous pouvez donc les modifier directement dans Meld et lorsque vous les enregistrez, vos modifications seront enregistrées dans votre répertoire de travail.
Une option encore plus intéressante est la comparaison du répertoire de travail actuel avec le stash. Vous pouvez le faire en tapant simplement:
Ensuite, vous pouvez transférer certaines modifications de la réserve (fenêtre de gauche) vers votre copie de travail actuelle (fenêtre de droite), sans utiliser
git stash pop/apply
et éviter la résolution de conflit gênante qui peut être induite par ces commandes.Je pense que cela peut considérablement augmenter le flux de travail avec des caches. Vous pouvez transférer progressivement les modifications de la réserve à la copie de travail et les valider une par une, en introduisant d'autres modifications si vous le souhaitez.
la source
Bien qu'il semble, d'après les autres réponses, qu'il n'y ait pas de moyen de le faire directement dans le dépôt git pour le moment, il est facile (grâce à la réponse à une autre question :)) d'écrire un script qui extraira les arbres de deux commits dans les répertoires temporaires et exécutez meld sur eux, en supprimant les deux répertoires lorsque meld se termine:
http://gist.github.com/498628
Bien sûr, vous perdrez toutes les modifications apportées via meld, mais c'est assez agréable pour un aperçu rapide des différences, je pense.
la source
Je pense qu'un moyen simple de le faire est d'utiliser
git reset --soft
:Objectif: comparer les différences entre branch_a et branch_b avec meld
la source
Dans git V1.7.9, vous pouvez comparer deux commits sans la ligne de commande:
Vous devez configurer dans les options d'édition de 'git gui', globales: "Utiliser l'outil de fusion: meld".
Démarrez gitk , sélectionnez un commit, faites un clic droit sur un autre commit> " diff this -> selected ". Sous 'patch', faites un clic droit sur un fichier> " diff externe ".
meld démarre et affiche le premier commit toujours sélectionné sur le côté droit.
la source
Pour Meld sur macOS, ajoutez ceci à votre
~/.gitconfig
comme recommandé par le mainteneur de l'application macOS, yousseb :Vous pouvez omettre les
merge
configurations si vous le souhaitez.La réponse de @ GutenYe n'a pas fonctionné pour moi en raison de l'échappement automatique et / ou de quelque chose avec
zsh
.la source