138 votes

détail des modifications après git pull

Après git pull, sa sortie donne un résumé de la quantité de changement. Si je veux voir le détail des modifications de chaque fichier ou de certains fichiers, comment puis-je le faire ?

Mise à jour :

Merci. Je ne sais pas pourquoi je ne peux pas ajouter de commentaire ou voter sur vos réponses. Bon, voici ma question à Jefromi :

  1. Comment puis-je savoir si j'ai été tiré vers le maître ? Tout ce que j'ai fait, c'est "git pull".

  2. Vers quoi pointe master et quelle est la différence entre master et HEAD, les deux têtes par défaut de git.

  3. comment voir le détail des changements dans un fichier spécifique ?

  4. comment voir à nouveau le changement dans la sortie du résumé par le dernier pull git ?

  5. quelle est la différence entre git diff et git-whatchanged ?

216voto

Jefromi Points 127932

Supposons que vous tirez vers le maître. Vous pouvez vous référer à la position précédente de master par master@{1} (ou même master@{10.minutes.ago} voir la section sur la spécification des révisions dans le manuel de l'utilisateur. Page de manuel de git-rev-parse ), afin que vous puissiez faire des choses comme

  • Voir tous les changements : git diff master@{1} master

  • Voir les modifications apportées à un fichier donné : git diff master@{1} master <file>

  • Voir tous les changements dans un répertoire donné : git diff master@{1} master <dir>

  • Consultez à nouveau le résumé des modifications : git diff --stat master@{1} master

[Modifié pour une description claire de ce que fait chaque commande].

Quant à votre question "comment puis-je savoir si je suis sur master"... eh bien, l'utilisation des branches est une partie importante du flux de travail de git. Vous devriez toujours être conscient de la branche sur laquelle vous vous trouvez - si vous avez tiré des changements, vous voulez les tirer vers la bonne branche ! Vous pouvez voir une liste de toutes les branches, avec un astérisque à côté de la branche en cours de check-out, avec la commande git branch . Le nom de la branche courante est également imprimé avec la sortie de git status . Je recommande vivement de parcourir les pages de manuel des commandes à utiliser - c'est un excellent moyen d'acquérir lentement des connaissances.

Et votre dernière question : HEAD est le nom de la branche actuellement extraite. Vous pouvez en effet utiliser HEAD y HEAD@{1} dans ce contexte également, mais il est un peu plus robuste d'utiliser les branches, puisque si vous allez vérifier une autre branche, HEAD est maintenant cette deuxième branche, et HEAD@{1} est maintenant master - pas ce que vous voulez !

Pour éviter de devoir poser un grand nombre de petites questions comme celle-ci, vous devriez probablement consulter un tutoriel git. Il y en a un million sur le web, par exemple :

54voto

Christian Oudard Points 13461

Disons que vous faites un git pull comme ceci :

$ git pull
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From git@dev.example.com:reponame
   a407564..9f52bed  branchname   -> origin/branchname
Updating a407564..9f52bed
Fast forward
 .../folder/filename          |  209 ++++++++-----
 .../folder2/filename2        |  120 +++++++++++---------
 2 files changed, 210 insertions(+), 119 deletions(-)

Vous pouvez voir la différence de ce qui a changé en utilisant les numéros de révision :

$ git diff a407564..9f52bed

2voto

Jack Points 816

Cette méthode est un peu compliquée, mais elle vous permettra d'utiliser des outils graphiques tels que gitk o gitg o git-gui :

git pull
git reset HEAD@{1}
gitg (or gitk or whatever tool you like)

La réponse avec le plus de upvotes donne la meilleure façon d'utiliser l'outil git, mais j'utilise cette méthode parce que je peux ensuite utiliser des outils avec une interface graphique pour voir les changements :P

J'aurais alors l'étape supplémentaire de faire un git checkout . et ensuite faire git pull afin que je puisse correctement tirer et fusionner, mais j'apprécie suffisamment la possibilité d'examiner les différences dans une interface graphique pour supporter les deux étapes supplémentaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X