Question Comment voir les changements dans un commit Git?


Quand je fais git diff COMMIT Je vois les changements entre ce commit et HEAD (pour autant que je sache), mais j'aimerais voir les changements qui ont été faits par ce seul commit.

Je n'ai pas trouvé d'options évidentes sur diff / log qui me donneront cette sortie.


989
2017-07-10 06:22


origine


Réponses:


Pour voir le diff pour un particulier COMMIT hacher:

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

Alternativement, git show COMMIT fera quelque chose de très similaire. (Les données du commit, y compris son diff - mais pas pour les commits de fusion.) Voir le git show page de manuel.


1277
2017-07-10 06:23



Comme mentionné dans "Abrégé pour diff de git commit avec son parent?", vous pouvez aussi utiliser git diff avec:

git diff COMMIT^!

ou

git diff-tree -p COMMIT

Avec git show, vous auriez besoin (pour vous concentrer uniquement sur diff) de faire:

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

le COMMIT le paramètre est un commit-ish:

UNE commit objet ou un objet qui peut être déréférencé récursivement à un objet commit. Les éléments suivants sont tous commit-ishes: un objet commit, un tag objet cela pointe vers un objet commit, un objet tag qui pointe vers un objet tag qui pointe vers un objet commit, etc.

Voir gitrevision "SPÉCIFIER LES RÉVISIONS" pour référencer un commit-ish.
Voir également "Que signifie tree-ish dans Git?".


371
2017-07-10 06:31



Vous pouvez également essayer cette façon simple:

git show <COMMIT>

184
2018-06-15 09:02



git show montre les changements effectués dans le commit le plus récent.

Équivalent à git show HEAD.

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


48
2017-09-16 01:50



D'abord obtenir l'ID de validation en utilisant,

git log #to list all

Ou

git log -p -1 #last one commit id

Copier l'identifiant de validation

Maintenant, nous utilisons deux méthodes pour lister les modifications d'un commit 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

21
2017-07-19 05:48



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>

Aussi de la même page de man, en bas, dans le Section des exemples:

$ git diff HEAD^ HEAD      <3>

Comparez la version avant la dernière validation et la dernière validation.

Certes, il est libellé un peu confus, il serait moins déroutant que

Comparez le commit le plus récent avec le commit avant.


20
2017-07-10 07:20



Ce qui suit 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
2017-10-14 17:16



Une autre possibilité:

git log -p COMMIT -1


9
2018-02-16 14:49



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é modifiés / validés dans un hash de commit


8
2018-03-24 12:49



Pour voir l'auteur et l'heure en utilisant le commit git show COMMIT. Ce qui entraînera 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, exécutez ce qui suit avec les valeurs de la ligne Fusionner ci-dessus git diff --stat a2a2894 3a1ba8f.

Si vous voulez voir le diff actuel, lancez git --stat a2a2894 3a1ba8f


5
2017-07-27 22:20



Je cours la version 2.6.1.windows.1 de Git sur Windows 10, ainsi 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 consiste à citer le signe d'insertion:

git diff "COMMIT^" COMMIT

4
2018-01-20 08:00