Avant d’utiliser pull, je souhaite vérifier s’il existe des différences entre mon maître local et mon maître github.
Comment puis-je le faire?
git pull
Équivaut vraiment à exécuter git fetch
Puis git merge
. Le git fetch
Met à jour vos soi-disant "branches de suivi à distance" - en général, celles-ci ressemblent à Origin/master
, github/experiment
, Etc. que vous voyez avec git branch -r
. Celles-ci ressemblent à un cache de l'état des branches du référentiel distant qui sont mises à jour lorsque vous faites git fetch
(Ou un succès git Push
).
Supposons donc que vous avez une télécommande appelée Origin
qui fait référence à votre référentiel GitHub, vous feriez:
git fetch Origin
... et ensuite:
git diff master Origin/master
... afin de voir la différence entre votre master
et celui sur GitHub. Si ces différences vous conviennent, vous pouvez les fusionner avec git merge Origin/master
, En supposant que master
est votre branche actuelle.
Personnellement, je pense que faire séparément git fetch
Et git merge
Est généralement bonne idée .
Si vous n'êtes pas intéressé par les détails que git diff
_ sorties vous pouvez simplement lancer git cherry
qui générera une liste des commits que votre branche de suivi à distance a avant votre branche locale.
Par exemple:
git fetch Origin
git cherry master Origin/master
Produira quelque chose comme:
+ 2642039b1a4c4d4345a0d02f79ccc3690e19d9b1
+ a4870f9fbde61d2d657e97b72b61f46d1fd265a9
Indique qu'il y a deux commits dans ma branche de suivi à distance qui n'ont pas été fusionnés dans ma branche locale.
Cela fonctionne aussi dans l'autre sens:
git cherry Origin/master master
Vous montrera une liste des commits locaux que vous n'avez pas encore insérés dans votre référentiel distant.
Et une autre commande utile pour faire cela (après git fetch) est:
git log Origin/master ^master
Cela montre les commits qui sont dans Origin/master mais pas dans master. Vous pouvez aussi le faire en sens inverse lorsque vous faites git pull, pour vérifier ce que les commits seront soumis à remote.