According to the documentation, git pull effectue un git fetch puis un git merge, cependant dans ce cas effectuer git pull origin master devrait effectuer un git fetch origin master non? Cependant, il ne semble pas le faire. Voici un exemple.
Supposons que mon origin remote master (sur GitHub dans mon cas) ait l'historique suivant :
commit 1111111 : mon premier commit
commit 2222222 : un commit de quelqu'un d'autre
et que je n'ai que mon premier commit en local comme le montre ce qui suit
git checkout master
git log --pretty=format:'%h' -n 1
1111111
git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111
À partir de là, je fais mon pull et regarde les résultats comme suit :
git checkout master
git pull origin master
git log --pretty=format:'%h' -n 1
2222222
git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111
Comme on peut le voir, le pull a effectivement mis à jour ma branche master avec le(s) nouveau(x) commit(s) de l'origin remote, mais mon origin/master local est toujours là où il était. Ce qui me force à faire ce qui suit
git fetch origin master
git checkout origin/master
git log --pretty=format:'%h' -n 1
2222222
Est-ce le comportement correct pour git pull ou aurais-je mal configuré quelque chose ? J'ai parcouru la page de manuel de git pull et je n'ai rien vu qui suggère cela mais j'aurais pu le manquer.
0 votes
Voir si cela vous aide à comprendre. stackoverflow.com/questions/2452226/… ou celui-ci stackoverflow.com/questions/2883840/…
1 votes
Possible duplicate de 'git pull origin mybranch' laisse local mybranch N commits en avance sur l'origine. Pourquoi?
0 votes
Vous voudrez peut-être envisager de faire
git fetch
suivi degit merge
. Vous finirez généralement avec moins de surprises et aurez plus de contrôle sur la manière de fusionner.0 votes
@CharlesBailey Oui, je suis d'accord que Matthias et moi discutons du même problème. Dommage que sa question n'ait pas été soulevée lors de mes recherches précédentes.