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é?
Réponses:
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.
Vous pouvez consulter les modifications comme le dit @iblue avec un fetch
et diff
avant 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 x
ci-dessous):
SP---o---o [master]
\
x---x [origin/master]
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
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
Parce que ce git pull
n'est qu'un raccourci pour git fetch
et git merge
, vous pouvez exécuter git fetch
pour 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.
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}
@{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 ...
git log --stat