web-dev-qa-db-fra.com

En utilisant gitk, puis-je voir la différence entre 2 commits?

J'ai essayé:

git diff sha1 sha2

Mais la sortie n'est pas la meilleure, est-il possible de voir la différence entre 2 commits en utilisant gitk?

39
Blankman

Dans les fenêtres au moins, il est parfaitement possible:

enter image description here

50
Mr_and_Mrs_D

Je ne sais pas si vous voulez réellement un diff ou si vous voulez la représentation gitk normale mais uniquement pour les commits menant de sha1 à sha2

Dans le dernier cas, vous pouvez fournir tous les paramètres de révision normaux: https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html

Vous pouvez donc faire des choses comme

gitk sha1..sha2

ou si le maître a été fusionné dans le sha2 branche et vous ne voulez pas voir les commits qui viennent de master et sha1, est le premier commit dérivé de master use

gitk master..sha2
7
Jens Schauder

Malheureusement, gitk ne prend pas en charge la sortie diff de cette façon. :-( Vous pouvez utiliser git difftool bien que. Il est livré avec la prise en charge d'un certain nombre d'outils intégrés. Par exemple, vous pouvez faire git difftool -t kdiff3 sha1 sha2. Il montre que le fichier diffère un à la fois. Il y a eu des discussions sur la liste git sur la prise en charge de plus d'un fichier à la fois via un outil de diff, mais je ne sais pas où cela a abouti. Je n'ai pas encore vu de patch l'implémenter.

3
John Szakmeister

Non, mais vous pouvez le faire en utilisant meld:

git checkout sha1
git reset sha2
git diftool --tool=meld

L'astuce est que, en vérifiant sha1 puis en réinitialisant sha2, vous faites apparaître toutes les différences entre elles comme des modifications non validées. Ensuite, meld peut utiliser sa capacité à afficher les modifications non validées, pour faire une différence de tous les fichiers impliqués en même temps.

2
Benubird