Comment voir les changements de code après git pull?
87
Je voudrais inspecter toutes les modifications de code après avoir effectué un git pull. Actuellement, il me montre simplement quels fichiers changent. Comment puis-je voir quel code a changé?
Vous pouvez consulter les modifications comme le dit @iblue avec un fetchet diffavant de fusionner:
$ git fetch
$ git diff master...origin/master
Notez le triple point, ce qui signifie diff par rapport au parent partagé et à l'origine / maître (commits indiqués xci-dessous):
SP---o---o [master]
\
x---x [origin/master]
Juste après une traction
La toute première ligne dans la sortie d'un pull ressemble à ceci:
$ git pull
Updating 37b431a..b2615b4
...
Vous pouvez alors simplement faire:
$ git diff 37b431a..b2615b4
Ou n'importe quelle autre commande:
$ git log --name-status 37b431a..b2615b4
Plus tard
Si cela fait un moment que vous n'avez pas tiré, et que vous souhaitez savoir quels changements ont été apportés par le dernier pull, vous pouvez le rechercher avec:
$ git reflog | grep -A1 pull | head -2
qui affichera le hachage après le tirage suivi du hachage avant le tirage:
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
Vous pouvez alors faire la même chose avec ces deux hachages:
C'est la seule réponse qui vous permet de vérifier quels fichiers ont été modifiés lors de la dernière extraction lorsque vous ne vous souvenez pas du nombre de validations qui ont été retirées à ce moment-là.
kremuwa
22
Parce que ce git pulln'est qu'un raccourci pour git fetchet git merge, vous pouvez exécuter git fetchpour récupérer les branches de l'origine, puis afficher les différences avant de fusionner. Comme ça:
git fetch # Load changes from remote server
git diff master origin/master # Show differences
git merge origin/master # Merge remote changes with local changes
Si vous exécutez sur une branche différente de master , vous devez bien sûr changer les noms de branche dans les commandes ci-dessus.
C'est une bonne réponse, mais l'explication est incorrecte: "Pour comparer avec les sources n commet derrière" . La @{n}syntaxe signifie en fait la positionnth précédente de la branche / tête. Par exemple, s'il y a eu 10 commits depuis la dernière fois que vous avez fait une traction, se réfère à la avant la position de , qui est 10 commits avant. C'est pourquoi l'utilisation est utile pour vérifier les modifications après une extraction. master@{1}master@{n}
wisbucky
C'est la réponse que je cherchais! Merci pour l'explication @wisbucky
tamerlaha
5
Vous pouvez vérifier ce qui change en poussant et en tirant par ceci ...
Réponses:
Vous montrera les noms des fichiers qui ont changé pour les deux derniers commits.
Vous montrera les changements eux-mêmes.
Avant de tirer,
Vous montrera quels commits vous êtes sur le point de récupérer, ainsi que les noms des fichiers.
la source
Avant de tirer
Vous pouvez consulter les modifications comme le dit @iblue avec un
fetch
etdiff
avant de fusionner:Notez le triple point, ce qui signifie diff par rapport au parent partagé et à l'origine / maître (commits indiqués
x
ci-dessous):Juste après une traction
La toute première ligne dans la sortie d'un pull ressemble à ceci:
Vous pouvez alors simplement faire:
Ou n'importe quelle autre commande:
Plus tard
Si cela fait un moment que vous n'avez pas tiré, et que vous souhaitez savoir quels changements ont été apportés par le dernier pull, vous pouvez le rechercher avec:
qui affichera le hachage après le tirage suivi du hachage avant le tirage:
Vous pouvez alors faire la même chose avec ces deux hachages:
la source
Parce que ce
git pull
n'est qu'un raccourci pourgit fetch
etgit merge
, vous pouvez exécutergit fetch
pour récupérer les branches de l'origine, puis afficher les différences avant de fusionner. Comme ça:Si vous exécutez sur une branche différente de master , vous devez bien sûr changer les noms de branche dans les commandes ci-dessus.
la source
Vous pouvez comparer le contenu extrait avec les sources de la validation immédiatement précédente par,
par exemple:
Pour comparer avec les sources n commet derrière,
la source
@{n}
syntaxe signifie en fait la positionnth
précédente de la branche / tête. Par exemple, s'il y a eu 10 commits depuis la dernière fois que vous avez fait une traction, se réfère à la avant la position de , qui est 10 commits avant. C'est pourquoi l'utilisation est utile pour vérifier les modifications après une extraction.master@{1}
master
@{n}
Vous pouvez vérifier ce qui change en poussant et en tirant par ceci ...
la source