Montrer la diff entre commits
Je suis à l'aide de Git sur Ubuntu 10.04 (Lucid Lynx).
J'ai fait quelques révisions pour mon maître.
Cependant, je veux obtenir la différence entre ces validations. Ils sont tous sur ma branche master.
Par exemple:
commit dj374
made changes
commit y4746
made changes
commit k73ud
made changes
Je veux obtenir la différence entre k73ud et dj374. Cependant, quand j'ai fait la suite, je ne pouvais pas voir les changements que j'ai faits dans k73ud
.
git diff k73ud..dj374 > master.patch
Vous devez vous connecter pour publier un commentaire.
Essayer
à assurez-vous d'inclure tous les changements de
k73ud
dans le diff.git diff
compare les deux points de terminaison (au lieu de s'engager gamme).Depuis l'OP voulez voir les changements introduits par
k73ud
, il/elle a besoin de différence entre les premier parent de commettre dek73ud
:k73ud^
(ouk73ud^1
ouk73ud~
).De cette façon, le
diff
résultats incluent les changements depuisk73ud
parent (sens y compris les changements dek73ud
lui-même), plutôt que des changements introduits depuisk73ud
(jusqu'àdj374
).Aussi, vous pouvez essayer:
et le paragraphe 1 de l'espace, pas plus):
Et si vous avez besoin pour obtenir uniquement des noms de fichiers (par exemple, pour copier correctif manuellement):
Et vous pouvez obtenir les modifications appliquées à une autre branche:
git diff 275e8^ a8d9d9
puisque c'est le même alors '..
'.^^
git diff k73ud..dj374
est OKk73ud^
.git diff dj374 k73ud
?k73ud
est censé être l'ancien commit, pas le nouveau.k73ud
(l'ancien commit) lui-même, ce qui pourrait ne pas être ce que l'OP voulait^
après qu'il ou^^
sur Invite de Commande Windows (et en utilisant le signe donnerait que l'erreur). Ce faisant, dans ce cas, serait l'équivalent dediff -r /dev/null /path/to/repo
(qui est juste à chaque ligne avec un+
avant, ou en d'autres termes, il est absurde).Pour voir la différence entre:
Votre copie de travail et la zone de transit:
De la zone de transit et le dernier commit:
Votre copie de travail et de s'engager 4ac0a6733:
Commettre 4ac0a6733 et le dernier commit:
Commettre 4ac0a6733 et de s'engager 826793951
Pour plus d'explication voir la documentation officielle.
git diff {x} {y} -- filename
où{x}
et{y}
sont un de ces exemples. Voir aussi,git log -p
, puisqu'il y a un certain chevauchement.Si vous voulez voir les modifications apportées par chaque commit, essayez de "git log -p"
- Je utiliser
gitk
pour voir la différence:Il a un mode graphique afin que l'examen est plus facile.
gitk --all
Pour voir la différence entre les deux commits (appelons-les
a
etb
), l'utilisationa
etb
est à l'opposé deb
eta
.Pour voir la différence entre votre dernier commit et ne sont pas encore commis de modifications, utilisez
Si vous voulez être en mesure de revenir sur la différence plus tard, vous pouvez l'enregistrer dans un fichier.
J'ai écrit un script qui affiche la diff entre les deux commits, fonctionne bien sur Ubuntu.
https://gist.github.com/jacobabrahamb4/a60624d6274ece7a0bd2d141b53407bc
La plus simple pour vérifier les changements dans les 2 dernières s'engage, après ouverture:
Disons que vous avez un plus de s'engager à fond (les plus anciennes), alors cela devient assez facile:
Maintenant, à l'aide ci-dessous permettra de facilement le serveur de l'objet.
Utilisez cette commande pour la différence entre commettre et unstaged: