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.
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 .
, 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? ".
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.
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
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.
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>
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
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.
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
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
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
.
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
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^-
en cas de vérification du changement de source dans une vue graphique,
$gitk (Mention your commit id here)
par exemple:
$gitk HEAD~1