web-dev-qa-db-fra.com

Où trouver les changements dus à `git fetch`

Je ne voulais pas perdre d'informations après un git pull, donc j'ai fait un git fetch avant. Où puis-je lire les nouvelles modifications après un git fetch? Je suis allé au FETCH_HEAD fichier, mais il n'y avait rien de plus qu'un grand nombre.

43
epsilones

git fetch Origin par défaut récupère tout depuis la télécommande nommée "Origin" et met à jour (ou crée) les soi-disant "branches de suivi à distance" pour cette télécommande. Par exemple, pour la télécommande nommée "Origin" qui contient des branches nommées "master" et "feature", exécutez git fetch remote entraînera la mise à jour (ou la création, si elles n'existent pas) des branches de suivi à distance nommées "Origine/maître" et "Origine/fonctionnalité". Vous pouvez les voir dans la sortie de git branch -a (notez "-a").

Maintenant, la configuration Git habituelle est que (certaines de) vos branches locales suivent certaines branches distantes (généralement du même nom). Autrement dit, votre branche "maître" locale suit "Origine/maître", etc.

Donc, après avoir récupéré, pour voir ce que le "maître" distant a comparé à votre "maître" local, vous demandez à Git de vous montrer exactement ceci:

git log Origin/master ^master

ce qui signifie "toutes les validations accessibles depuis" Origin/master "qui n'incluent pas les validations accessibles depuis" master "" ou, alternativement

git log master..Origin/master

qui a la même signification. Voir page de manuel "gitrevisions" pour plus d'informations, en particulier la partie "Spécification des plages". Voir également les exemples dans la page de manuel de git-log

Vous êtes libre de personnaliser la sortie de git log comme bon vous semble car il prend en charge un grand nombre d'options qui l'affectent.

Notez que votre branche locale peut également avoir des validations que la branche distante correspondante ne contient pas (encore). Pour en avoir un aperçu, vous devez inverser les révisions passées à git log pour (espérons-le) des raisons évidentes.

Comme d'habitude, il est essentiel de éduquervous-même pour comprendre les concepts sous-jacents avant de commencer à utiliser un outil. Je vous en prie.

60
kostix

Essayer

git log --oneline --decorate Origin/master

Cela vous donnera le journal des modifications de la tête master de la télécommande Origin (vous pouvez remplacer n'importe quelle autre branche distante si nécessaire). Vous obtiendrez une sortie un peu comme ceci:

234121 (Origin/master) Commit message 5
872373 Commit message 4
623748 Commit message 3
235090 (master) Commit message 2
192399 Commit message 1

Le commit marqué (master) est le chef de votre branche locale master. Le commit marqué (Origin/master) est le chef de la branche master de la télécommande.

5
Barend

Si vous souhaitez simplement voir quels fichiers seront modifiés si vous effectuez un GIT PULL, procédez comme suit:

git fetch && git diff HEAD @{u} --name-only

Si vous souhaitez voir TOUTES les différences entre votre version actuelle et la version entrante, y compris les modifications locales non validées, tapez ceci:

git fetch && git diff @{u} --name-only
4
Eliezer Berlin