Comment montrer ce qu'a fait un commit?


266

Une façon stupide que je sais est:

git diff commit-number1 commit-number2

une meilleure façon?

Je veux dire que je veux connaître le commit1 lui-même, je ne veux pas ajouter le commit2 avant comme paramètre.


14
Bien que "git show <commit>" soit la bonne solution, vous pouvez utiliser "git diff <commit> ^!" pour obtenir la différence entre commit et son (premier) parent. Voir man git-rev-parse (1) pour plus de détails.
Jakub Narębski

Props à @Jakub: git diff <commit>^!est la réponse, à mon humble avis . C'est ce que vous voyez en mode de validation sur github.com
Chris

Réponses:



63

Est-ce que

$ git log -p

faites ce dont vous avez besoin?

Consultez le chapitre sur Git Log dans le Git Community Book pour plus d'exemples. (Ou regardez la documentation .)

Mise à jour: Comme d'autres ( Jakub et Bombe ) l'ont déjà souligné: bien que ce qui précède fonctionne, git show est en fait la commande qui est censée faire exactement ce qui a été demandé.


51

TL; DR

git show <commit>


Spectacle

Pour montrer ce qu'un commit a fait avec les statistiques:

git show <commit> --stat

Journal

Pour afficher le journal de validation avec les différences introduites pour chaque validation dans une plage:

git log -p <commit1> <commit2>

Qu'est-ce que c'est <commit>?

Chaque commit a un identifiant unique auquel nous faisons référence ici <commit>. L'identifiant unique est un hachage SHA-1 - une somme de contrôle du contenu que vous stockez plus un en-tête. #TMI

Si vous ne connaissez pas votre <commit>:

  1. git logpour afficher l'historique des validations

  2. Trouvez l'engagement qui vous tient à cœur.


22

J'ai découvert que "git show --stat" est le meilleur de tous ici, vous donne un bref résumé du commit, quels fichiers avez-vous ajoutés et modifiés sans vous donner plein de trucs, surtout si vous avez changé beaucoup de fichiers .


6

C'est une façon que je connais. Avec git, il semble toujours y avoir plus d'une façon de le faire.

git log -p commit1 commit2
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.