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'ici, mon meilleur pari semble être:
git diff --name-status master dev
ce qui n'est pas très informatif et pas très visuel.
Y a-t-il quelque chose de mieux là-bas?
Utilisez git diff
avec un range .
git diff branch1..branch2
Cela permettra de comparer les conseils de chaque branche.
Si vous voulez vraiment un logiciel d'interface graphique, vous pouvez essayer quelque chose comme SourceTree qui supporte Mac OS X et Windows.
Pour voir les différences visuelles de toutes les différences entre deux branches, j'aime bien fusionner les deux branches - SANS valider la fusion - puis utiliser git gui
ou git Extensions pour obtenir un aperçu des différences.
Ligne de commande Git pour la fusion sans validation:
git checkout branchA git fusion --no-commit --no-ff branchB
Ensuite, lorsque vous avez terminé, vous pouvez annuler la fusion avec
git merge - support
(h/t à @ jcugat pour le commentaire)
Si vous utilisez Intellij Idea IDE, vous pouvez simplement utiliser l'option de comparaison de la branche.
Vous pouvez aussi le faire facilement avec gitk.
> gitk branch1 branch2
Cliquez d'abord sur la pointe de branch1. Maintenant, faites un clic droit sur la pointe de branch2 et sélectionnez Diff this-> selected.
Pour ceux qui utilisent Windows avec TortoiseGit, vous pouvez obtenir une comparaison visuelle à travers cette fonctionnalité plutôt obscure:
shift
et faites un clic droit dessusctrl
pour sélectionner deux branches à comparerSi 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 à distant et à deux autres branches. Lorsque plusieurs fichiers sont sélectionnés, le diff apparaît comme ci-dessous:
En supposant que vous ayez extrait une branche de fonctionnalité et que vous souhaitiez voir la différence par rapport à 'maître', cliquez avec le bouton droit de la souris sur la branche 'maître' et sélectionnez "Diff par rapport à courant".
Malheureusement, il ne semble pas qu'il soit disponible sur les distributions * nix de si tôt .
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 name status convient au résumé, mais difftool itérera les modifications (et l'option -d
vous donne la vue du répertoire), par exemple.
$ git difftool their-branch my-branch
Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...
Ou comme @ rsilva4 mentionné avec -d
et par défaut pour votre branche actuelle, il s’agit simplement - par exemple. comparer au maître:
$ git difftool -d master..
... et oui - il existe de nombreuses variantes - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
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 ...
Cela vous montrera une comparaison des deux.
Dans GitExtensions vous pouvez sélectionner les deux branches dans la grille de révision avec Ctrl pressé. Ensuite, vous pouvez voir les fichiers qui diffèrent entre ces branches. Lorsque vous sélectionnez un fichier, vous verrez des différences pour celui-ci.
Tiré de ici
METTRE À JOUR
J'utilise maintenant SourceTree. Complètement recommandé. J'aime particulièrement la façon dont vous pouvez mettre en scène/décontenancer des mecs.
Cela fait le travail:
git-diffall avec un outil de différenciation graphique comme meld. Voir le point 5 ici:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Il y a un article de Nice sur git et se fondent ici: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
Vous pouvez également utiliser le logiciel gratuit P4Merge de Perforce:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Vous trouverez des détails sur son intégration à Git ici et ici
mais un résumé rapide des liens ci-dessus est:
$ git mergetool
et $ git difftool
pour utiliser p4merge$ git diff
utilisera toujours le visualiseur de différences en ligne par défaut :) (testé avec git version 1.8.2)[merge]
keepBackup = false
tool = p4merge
[mergetool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
keepTemporaries = false
trustExitCode = false
keepBackup = false
[diff]
tool = p4merge
[difftool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""
Si vous utilisez Eclipse, vous pouvez comparer visuellement votre branche actuelle de l'espace de travail à une autre balise/branche:
Vous pouvez faire beaucoup avec les fonctionnalités de base de Git. Il peut être intéressant de spécifier ce que vous souhaitez inclure dans votre diff visuel. La plupart des réponses se concentrent sur les différences de validations ligne par ligne, votre exemple se concentrant sur les noms des fichiers affectés dans une validation donnée.
Un aspect visuel qui semble ne pas être abordé est la manière de voir les commits que contiennent les branches (qu'elles soient communes ou uniques).
Pour ce visuel, je suis un grand fan de git show-branch
; il ouvre une table de commits bien organisée par branche et retourne à l'ancêtre commun .- pour l'essayer sur un référentiel avec plusieurs branches avec divergences, il suffit de taper git show-branch
et de vérifier le résultat. voir Comparez les commits entre les branches Git
Voici comment visualiser le diff visuel entre les commits entiers, par opposition aux fichiers uniques, dans Visual Studio (testé dans VS 2017). Malheureusement, cela ne fonctionne que pour les commits dans une branche: dans "Team Explorer", choisissez la vue "Branches", cliquez avec le bouton droit de la souris sur le référentiel, puis choisissez "Afficher l'historique" comme dans l'image suivante.
Ensuite, l'historique de la branche actuelle apparaît dans la zone principale. (Où les branches qui se sont terminées de la même manière que les validations précédentes sont marquées par des étiquettes). Sélectionnez maintenant deux validations avec Ctrl-Gauche, puis cliquez avec le bouton droit de la souris et sélectionnez "Comparer les validations ..." dans le menu contextuel.
Pour plus d'informations sur la comparaison de branches dans le monde Microsoft, consultez cette question de stackoverflow: Différences entre les branches git à l'aide de Visual Studio .