Comment faire pour voir les modifications 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 pas trouvé évident options sur diff
/log
qui me donnera cette sortie.
- double possible de Abréviation pour la diff de git commit avec son parent?
Vous devez vous connecter pour publier un commentaire.
Pour voir la diff pour un particulier
COMMIT
hash:git diff COMMIT~ COMMIT
va vous montrer la différence entre leCOMMIT
s'ancêtre et leCOMMIT
. Voir les pages de man pour git diff pour plus de détails sur la commande et gitrevisions sur le~
notation et de ses amis.Sinon,
git show COMMIT
va faire quelque chose de très similaire. (La validation des données, y compris ses diff - mais pas pour la fusion s'engage.) Voir la git show man.^
doit être indiqué dans la Thomson et Bourne coquilles (synonyme de|
là) etrc
et de ses dérivés (caret opérateur) et danszsh
avec extendedglob activé (not
d'expansion de l'opérateur)HEAD^
etHEAD
). Cela peut notamment être le cas lorsque vous faites des choses comme ignorer les espaces blancs, ou si vous avez simplement à l'identique s'engage.HEAD^
implique premier parent dans le cas d'un commit a plusieurs parents (c'est à dire de fusion s'engager).git diff COMMIT~ COMMIT
fonctionne pour moi, l'avis de la tilde à la place de l'accent circonflexe. Je suis en cours d'exécution git version 2.6.1.de windows.1 sur Windows 10.COMMIT^ COMMIT
peut être abrégé enCOMMIT{^,}
.^
ferait la même chose que d'un seul~
, mais je crois que vous avez besoin de mettre des guillemets autour de la^
comme Stéphane l'a suggéré. C'est ce que j'ai trouvé pour être le cas lors de l'exécution de git à partir de l'invite de commande Windows.git diff COMMITID^ COMMITID *.yml
<--- montre seulement changé les fichiers ymlgit diff
qui est déjà connu par l'auteur)Comme mentionné dans "Abréviation pour la diff de git commit avec ses parents?", vous pouvez aussi utiliser
git diff
avec:ou
Avec git show, vous auriez besoin (afin de se concentrer sur diff seul) à faire:
La
COMMIT
paramètre est un commit-ish:Voir gitrevision "SPÉCIFICATION de RÉVISIONS" pour faire référence à un commit-ish.
Voir aussi "Quel est l'arbre-ish dire à Git?".
Vous pouvez également essayer cette façon facile:
git show
montre les modifications apportées dans la plus récente de la validation.Équivalent à
git show HEAD
.git show HEAD~1
vous ramène 1 commit.De la première à obtenir la validation de l'ID de l'aide,
Ou
Copie commettre id.
Maintenant, nous utilisons deux méthodes pour les modifications de la liste à partir d'un commit,
Méthode 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
Méthode 2:
^!
veux dire??À partir de la page de man pour git-diff(1):
Utiliser la 3ème, dans le milieu:
Également à partir de la même page de man, en bas, dans la Les exemples de la section:
Certes, il est rédigé un peu prêter à confusion, il serait moins à confusion que
git diff HEAD HEAD^
.git diff "HEAD^" HEAD
, a fonctionné pour moiCela vous montrera juste ce qui est dans ce commit. Je pense que vous pouvez faire une série il simplement en mettant un espace entre deux commettre shas.
qui est très utile si vous êtes à la relocalisation souvent parce que votre fonction de journaux seront tous dans une rangée.
La suite semble faire le travail, je l'utilise pour montrer ce qui a été apporté par une fusion.
git log
? (en raison de stackoverflow.com/a/18585297/6309)Une autre possibilité:
git log -p COMMIT -1
git show COMMIT
donne le même résultatest é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 les fichiers changé/commis à donner commettre hachageVous pouvez utiliser
git diff HEAD HEAD^1
pour voir la diff avec le parent s'engager.Si vous voulez voir la liste des fichiers, ajouter le
--stat
option.diff
commande est: qu'aurais-je besoin de changer dans le fichier pour obtenir de commettreHEAD
de commettreHEAD^1
?De voir l'auteur et de l'heure par commettre l'utilisation
git show COMMIT
. Ce qui se traduira par quelque chose comme ceci:Si vous voulez voir les fichiers qui ont été modifiés, exécutez la commande suivante avec les valeurs de la Fusion de la ligne au-dessus de
git diff --stat a2a2894 3a1ba8f
.Si vous voulez voir la diff, exécutez
git --stat a2a2894 3a1ba8f
git --stat a2a2894 3a1ba8f
". Je pense que tu veux diregit diff a2a2894 3a1ba8f
ou d'autreunknown option: --stat
.J'aime la commande ci-dessous pour comparer un spécifique s'engager et de son dernier commit:
Exemple:
Je suis en cours d'exécution Git version 2.6.1.de windows.1 sur Windows 10, j'ai donc besoin d'une légère modification à Nevik réponse (tilde à la place de l'accent circonflexe):
Une autre option est de citer le signe:
J'ai l'habitude de faire:
Pour montrer les changements concernant le dernier commit. Si vous avez plus s'engage simplement augmenter le nombre de 1 à combien s'engage diff que vous voulez voir.
Pour vérifier les changements complets:
Pour ne cocher que la changé/ajouté/supprimé des fichiers:
NOTE: Pour la vérification de la diff sans s'engager entre les deux, vous n'avez pas besoin de mettre de la validation des identifiants.
Cette commande vous permet d'obtenir le Git parent s'engager à-hash:
Après que
git diff-tool <commit-hash> <parent-commit-hash>
Exemple:
Après cette
En cas de contrôle le changement de source en mode graphique,
par exemple: