Quand je fais git diff COMMIT
je vois les changements entre ce commit et HEAD (autant que je sache), mais j'aimerais voir les changements apportés par ce simple commit.
Je n'ai trouvé aucune option évidente sur diff
/log
qui me donnera ce résultat.
Pour voir le diff pour un hash COMMIT
particulier:
git diff COMMIT~ COMMIT
vous montrera la différence entre l'ancêtre de cet COMMIT
et le COMMIT
. Reportez-vous aux pages de manuel relatives à git diff pour obtenir des détails sur la commande et gitrevisions à propos de la notation ~
et de ses amis.
Sinon, git show COMMIT
fera quelque chose de très similaire. (Les données du commit, y compris ses diff - mais pas pour les commits de fusion.) Voir la git show manpage .
Comme mentionné dans " Abréviation de diff de git commit avec son parent? ", vous pouvez également utiliser git diff
avec:
_git diff COMMIT^!
_
ou
_git diff-tree -p COMMIT
_
Avec git show, il vous faudrait (pour vous concentrer uniquement sur diff):
_git show --color --pretty=format:%b $COMMIT
_
Le paramètre COMMIT
est un commit-ish:
Un objet commit ou un objet pouvant être déréférencé de manière récursive en un objet commit. Les éléments suivants sont tous des commit-ishes: un objet commit, un objet tag qui pointe vers un objet commit, un objet tag qui pointe vers un objet tag qui pointe vers un objet commit, etc.
Voir gitrevision "SPECIFYING REVISIONS" pour référencer un commit.
Voir aussi " Qu'est-ce que tree-ish signifie dans Git? ".
Vous pouvez également essayer ce moyen facile:
git show <COMMIT>
git show
affiche les modifications apportées à la dernière validation.
Équivalent à git show HEAD
.
git show HEAD~1
vous renvoie 1 commit.
Commencez par 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
git show <commit_sha>
Cela vous montrera juste ce qu'il y a dans ce commit. Je pense que vous pouvez faire un intervalle en insérant simplement un espace entre deux commandes.
git show <beginning_sha> <ending_sha>
ce qui est très utile si vous changez souvent de base car vos journaux de fonctionnalités seront tous alignés.
Extrait de la page de manuel de 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 troisième au milieu:
git diff [options] <parent-commit> <commit>
Également à partir de la même page de manuel, en bas, dans le section Exemples :
$ git diff HEAD^ HEAD <3>
Comparez la version avant le dernier commit et le dernier commit.
Certes, il est libellé un peu déroutant, il serait moins déroutant que
Comparez le commit le plus récent avec le commit précédent.
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>
Je fais habituellement:
git diff HEAD~1
Pour montrer les changements concernant le dernier commit. Si vous avez plus de commits, augmentez simplement le nombre 1 avec le nombre de diff que vous voulez voir.
Une autre possibilité:
git log -p COMMIT -1
git difftool COMMIT^ <commit hash>
est également possible si vous avez configuré votre difftool.
Voyez ici comment configurer difftool Ou la page de manuel ici
De plus, 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 hachage Give commit
Vous pouvez utiliser git diff HEAD HEAD^1
pour voir le diff avec le commit parent.
Si vous voulez seulement voir la liste des fichiers, ajoutez l'option --stat
.
Pour voir l'auteur et l'heure par commit, utilisez git show COMMIT
. Ce qui donnera quelque chose comme ça:
commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <[email protected]>
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 de fusion au-dessus de git diff --stat a2a2894 3a1ba8f
.
Si vous voulez voir le diff actuel, lancez git --stat a2a2894 3a1ba8f
J'aime la commande ci-dessous pour comparer un commit spécifique et son dernier commit:
git diff <commit-hash>^-
Exemple:
git diff cd1b3f485^-
J'utilise Git version 2.6.1.Windows.1 sur Windows 10, il me fallait donc une légère modification de la réponse de Nevik (tilde au lieu de caret):
git diff COMMIT~ COMMIT
Une autre option est de citer le curseur:
git diff "COMMIT^" COMMIT
Pour vérifier les modifications complètes:
git diff <commit_Id_1> <commit_Id_2>
Pour vérifier uniquement les fichiers modifiés/ajoutés/supprimés:
git diff <commit_Id_1> <commit_Id_2> --name-only
NOTE: Pour vérifier diff sans validation, vous n'avez pas besoin de mettre les identifiants de validation.
Cette commande vous donnera le commit-hash du parent Git:
git log -n 2 <commit-hash>
Après cela, git diff-tool <commit-hash> <parent-commit-hash>
Exemple:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3
commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <[email protected]>
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 <[email protected]>
Date: Mon Jul 25 11:28:09 2016 +0530
The ratio of the height to width of the channel images are maintained.
Après ça
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f