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é?

uwe
la source
Reportez-vous à ceci .
unrealsoul007

Réponses:

98
git log --name-status -2

Vous montrera les noms des fichiers qui ont changé pour les deux derniers commits.

git log -p -2

Vous montrera les changements eux-mêmes.

Avant de tirer,

git fetch
git log --name-status origin/master..

Vous montrera quels commits vous êtes sur le point de récupérer, ainsi que les noms des fichiers.

Wayne Conrad
la source
68

Avant de tirer

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:

git diff 37b431a..b2615b4
quornian
la source
3
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.

iblue
la source
1
`` `` git diff --name-only master origin / master [path] `` ``
jiacheo
10

Vous pouvez comparer le contenu extrait avec les sources de la validation immédiatement précédente par,

git diff branch_name@{1}

par exemple:

git diff master@{1}

Pour comparer avec les sources n commet derrière,

git diff branch_name@{n}
Kasun
la source
2
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 ...

git log --stat
Sandip Karanjekar
la source