Cette réponse est idéale pour voir un diff visuel entre deux fichiers qui sont archivés dans git: Comment puis-je afficher la sortie 'git diff' avec un programme de diff visuel?
Cependant, j'aimerais voir un diff visuel entre deux branches. Jusqu'à présent, mon meilleur pari semble être:
git diff --name-status master dev
ce qui n'est pas très instructif et pas très visuel.
Y a-t-il quelque chose de mieux là-bas?
Réponses:
À utiliser
git diff
avec une gamme .Cela permettra de comparer les conseils de chaque branche.
Si vous voulez vraiment un logiciel GUI, vous pouvez essayer quelque chose comme SourceTree qui prend en charge Mac OS X et Windows.
la source
Meld
, puis la définir comme valeurdifftool
par défaut avecgit config --global diff.tool meld
et enfin le lancer au lieu de plainediff
avecgit difftool branch1..branch2
. Le résultat est beaucoup plus joli.git difftool -t meld branch1..branch2
Pour voir une différence visuelle de toutes les différences entre deux branches, j'aime fusionner les deux branches - SANS commettre la fusion - puis utiliser
git gui
ou git Extensions pour obtenir un aperçu des différences.Ligne de commande Git pour fusionner sans valider:
Une fois terminé, vous pouvez annuler la fusion avec
(h / t à @ jcugat pour le commentaire)
la source
git gui
cela montre les conflits comme non mis en scène, les non-conflits comme mis en scène, donc vous obtenez même une bonne distinction. Aide beaucoup plus pour moi que la réponse la mieux notée: DDans le cas où vous utilisez Intellij Idea IDE, vous pouvez simplement utiliser l'option de comparaison dans la branche.
la source
Vous pouvez également le faire facilement avec gitk.
Cliquez d'abord sur la pointe de branch1. Maintenant, faites un clic droit sur la pointe de branch2 et sélectionnez Diff this-> selected.
la source
gitk branch1..branch2
show uniquement valide les deux révisions.Pour ceux d'entre vous sous Windows utilisant TortoiseGit, vous pouvez obtenir une comparaison quelque peu visuelle grâce à cette fonctionnalité plutôt obscure:
shift
et faites un clic droit dessusctrl
pour sélectionner deux branches à comparerSource: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
la source
Si vous utilisez OSX ou Windows 7+, Atlassian SourceTree fonctionne très bien pour cela. Ce est gratuit.
Vous pouvez voir les modifications par étapes dans une configuration de diff côte à côte, et vous pouvez facilement comparer local avec distant et deux autres branches. Lorsque plusieurs fichiers sont sélectionnés, le diff s'affiche comme ci-dessous:
En supposant que vous avez extrait une branche de fonctionnalité et que vous souhaitez voir le diff par rapport à "master", faites un clic droit sur la branche "master" et sélectionnez "Diff contre courant"
Malheureusement, il ne semble pas comme si elle sera disponible sur les distributions * nix sitôt .
la source
Essayez «difftool» (en supposant que vous avez configuré les outils diff) - voir https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Je trouve que le statut du nom est bon pour le résumé mais difftool va itérer les changements (et l'
-d
option vous donne la vue du répertoire), par exempleOu comme @ rsilva4 l'a mentionné avec
-d
et par défaut à votre branche actuelle, c'est juste - par exemple, comparer au maître:... et oui - il existe de nombreuses variantes - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
la source
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
Si vous utilisez github, vous pouvez utiliser le site Web pour cela:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
Cela vous montrera une comparaison des deux.
la source
github.com/url/to/your/repo/compare/
et ensuite vous pouvez sélectionner les branchesDans GitExtensions, vous pouvez sélectionner les deux branches dans la grille de révision en appuyant Ctrlsur. Ensuite, vous pouvez voir les fichiers qui diffèrent entre ces branches. Lorsque vous sélectionnez un fichier, vous verrez un diff pour lui.
Pris d' ici
la source
METTRE À JOUR
Mac: J'utilise maintenant SourceTree. Je le recommande vivement. J'aime particulièrement la façon dont vous pouvez mettre en scène / déchaîner des mecs.
Linux: j'ai eu du succès avec:
meld
Par exemple pour installer
smartgit
sur Ubuntu:.deb
depuis https://www.syntevo.com/smartgit/download/Cela fait le travail:
git-diffall avec un outil GUI diff comme meld. Voir le point 5 ici:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Il y a un bon article sur git et meld ici: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
la source
Si vous utilisez Eclipse, vous pouvez comparer visuellement votre branche actuelle sur l'espace de travail avec une autre balise / branche:
la source
Vous pouvez également utiliser le P4Merge gratuit de Perforce:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Les détails sur son intégration avec Git peuvent être trouvés ici et ici
mais un résumé rapide des liens ci-dessus est:
$ git mergetool
et$ git difftool
utiliser p4merge$ git diff
utiliserez toujours le visualiseur de différences en ligne par défaut :) (testé avec git version 1.8.2)Changements pour .gitconfig
la source
Si vous utilisez l'excellent éditeur WebStorm, vous pouvez comparer avec n'importe quelle branche que vous souhaitez:
la source
Jettes un coup d'oeil à
git show-branch
Il y a beaucoup à faire avec les fonctionnalités de base de git. Il peut être utile de spécifier ce que vous souhaitez inclure dans votre différence visuelle. La plupart des réponses se concentrent sur les différences ligne par ligne des validations, où votre exemple se concentre sur les noms des fichiers affectés dans une validation donnée.
Un visuel qui ne semble pas être abordé est de savoir comment voir les commits que contiennent les branches (que ce soit en commun ou uniquement).
Pour ce visuel, je suis un grand fan de
git show-branch
; il éclate une table de commits bien organisée par branche vers l'ancêtre commun. - pour l'essayer sur un dépôt avec plusieurs branches avec divergences, il suffit de tapergit show-branch
et de vérifier la sortie - pour un résumé avec des exemples, voir Comparer les validations entre les branches Gitla source
Voici comment voir la différence visuelle entre des validations entières, par opposition à des fichiers uniques, dans Visual Studio (testé dans VS 2017). Malheureusement, cela ne fonctionne que pour les validations au sein d'une branche: dans "Team Explorer", choisissez la vue "Branches", cliquez avec le bouton droit sur le dépôt et choisissez "Afficher l'historique" comme dans l'image suivante.
L'historique de la branche actuelle apparaît alors dans la zone principale. (Les branches qui se terminaient par des validations antérieures sur la branche actuelle sont marquées par des étiquettes.) Sélectionnez maintenant quelques validations avec Ctrl-Gauche, puis cliquez avec le bouton droit et sélectionnez "Comparer les validations ..." dans le menu contextuel.
Pour en savoir plus sur la comparaison des branches dans le monde Microsoft, consultez cette question de stackoverflow: différences entre les branches git à l'aide de Visual Studio .
la source
Vous pouvez également utiliser vscode pour comparer les branches en utilisant l'extension CodeLense, cela est déjà répondu dans ce SO: Comment comparer différentes branches sur du code Visual studio
la source