Comment voir les changements dans un git commit?

Quand je fais git diff COMMIT je vois les changements entre les auteurs et la TÊTE (pour autant que je sache), mais je voudrais voir les modifications qui ont été apportées par ce commit.

Je n'ai trouvé aucune option évidente sur diff/log qui me donnera cette sortie.

1038
demandé sur Peter Mortensen 2013-07-10 10:22:43

16 réponses

Pour voir la diff pour un particulier COMMIT hash:

git diff COMMIT~ COMMIT vous montrera la différence entre l'ancêtre de COMMIT et le COMMIT . Voir les pages de manuel pour git diff pour plus de détails sur la commande et gitrevisions pour la notation ~ et ses amis.

alternativement, git show COMMIT fera quelque chose de très similaire. (La validation de données, y compris ses diff - mais pas pour merge commits.) Voir le git show man .

1336
répondu Nevik Rehnel 2018-06-28 15:45:25

, Comme mentionné dans " Abréviation pour la diff de git commit avec ses parents? ", vous pouvez également utiliser git diff avec:

git diff COMMIT^!

ou

git diff-tree -p COMMIT

avec git show, vous auriez besoin (pour vous concentrer sur diff seul) de faire:

git show --color --pretty=format:%b $COMMIT

le paramètre COMMIT est un 1519170920 "commit-ish 1519190920":

Un objet commit ou un objet , qui peut être de manière récursive déréférencé pour un objet commit. Les suivants sont tous commit-ishes: un objet commit, un la balise object qui pointe vers un objet commit, un tag de l'objet qui pointe vers une balise objet qui pointe vers un objet commit, etc.

voir gitrevision "spécifier les révisions " à la référence a commit-ish.

Voir aussi" que signifie "arbre-ish" en Git? ".

382
répondu VonC 2017-05-23 12:02:56

vous pouvez aussi essayer ce moyen facile:

git show <COMMIT>
206
répondu Lakhan 2017-07-02 23:07:03

git show indique les modifications apportées dans le plus récent commit.

équivalent à git show HEAD .

git show HEAD~1 vous ramène 1 commit.

50
répondu Adam Salma 2016-09-16 01:50:15

get First the commit ID using,

git log #to list all

ou

git log -p -1 #last one commit id

Copie commettre id.

maintenant nous utilisons deux méthodes pour lister les changements d'une propagation spécifique,

Méthode 1:

git diff commit_id^! #commit id something like this 1c6a6000asad012

Méthode 2:

git show commit_id
For example: git show 1c6a600a
22
répondu Mohideen ibn Mohammed 2018-07-19 20:34:10

de la page de manuel pour git-diff (1) :

git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

utilisez le 3ème au milieu:

git diff [options] <parent-commit> <commit>

Également à partir de la même page de man, en bas, dans le Exemples de la section :

$ git diff HEAD^ HEAD      <3>

comparez la version avant la dernière propagation et la dernière propagation.

C'est un peu confus. serait moins déroutant que

comparez la propagation la plus récente avec la propagation précédente.

21
répondu 2014-06-26 16:00:58

semble faire le travail, je l'utilise pour montrer ce qui a été apporté par une fusion.

git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>
17
répondu MichaelMoser 2018-07-19 20:30:38

une autre possibilité:

git log -p COMMIT -1

10
répondu John_West 2016-02-16 14:49:39
git difftool COMMIT^ <commit hash>

est également possible si vous avez configuré votre difftool.

voir ici comment configurer difftool Ou la page de manuel ici

en outre, vous pouvez utiliser git diff-tree --no-commit-id --name-only -r <commit hash> pour voir quels fichiers ont été changés / engagés dans un hash give commit

8
répondu Chand Priyankara 2017-05-23 12:34:50
git show <commit_sha>

cela vous montrera juste ce qu'il y a dans ce commit. Je pense que vous pouvez faire une gamme il en mettant juste un espace entre deux Shas de commit.

git show <beginning_sha> <ending_sha>

ce qui est assez utile si vous rebasez souvent parce que vos journaux de fonctionnalités seront tous dans une rangée.

7
répondu Iwnnay 2018-08-22 14:46:12

Pour voir l'auteur et de l'heure par commettre l'utilisation git show COMMIT . Ce qui donnera quelque chose comme ceci:

commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <you@you.com>
Date:   Fri Jul 24 17:46:42 2015 -0700

     Merge remote-tracking branch 'origin/your-feature'

si vous voulez voir quels fichiers ont été modifiés, lancez ce qui suit avec les valeurs de la ligne de fusion au-dessus de git diff --stat a2a2894 3a1ba8f .

si vous voulez voir la différence réelle, Lancez git --stat a2a2894 3a1ba8f

5
répondu Nikita G. 2015-07-27 22:20:05

j'exécute la version 2.6.1 de Git.Windows.1 sur Windows 10, donc j'ai eu besoin d'une légère modification à la réponse de Nevik (tilde au lieu de caret):

git diff COMMIT~ COMMIT

une autre option est de citer le caret:

git diff "COMMIT^" COMMIT
4
répondu Juuso Ohtonen 2018-07-19 20:33:09

vous pouvez utiliser git diff HEAD HEAD^1 pour voir la différence avec la propagation parent.

si vous voulez seulement voir la liste des fichiers, ajoutez l'option --stat .

4
répondu Irshu 2018-09-27 02:52:59

cette commande vous obtiendra le git parent commit-hash:

git log -n 2 <commit-hash>

après git diff-tool <commit-hash> <parent-commit-hash>

exemple:

bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3

commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <souparno.majumder@gmail.com>
Date:   Mon Jul 25 13:17:07 2016 +0530

CSS changed to maintain the aspect ratio of the channel logos and to fit them properly.

commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Author: souparno <souparno.majumder@gmail.com>
Date:   Mon Jul 25 11:28:09 2016 +0530

The ratio of the height to width of the channel images are maintained.

après

"
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f
2
répondu souparno majumder 2018-07-19 20:32:33

j'aime la commande ci-dessous pour comparer une commit spécifique et sa dernière commit:

git diff <commit-hash>^-

exemple:

git diff cd1b3f485^-
1
répondu starcwl 2018-07-19 20:34:50

en cas de vérification du changement de source dans une vue graphique,

$gitk (Mention your commit id here)

par exemple:

$gitk HEAD~1 
-1
répondu user272390 2018-05-11 08:26:30