Fetch et Pull
Si nous pouvons envoyer nos travaux locaux sur le dépôt distant ‘origin’, nous pouvons aussi récupérer les nouveaux commits du dépôt ‘origin’ vers notre projet local.
Pour cela, il existe deux méthodes : git fetch
et git pull
.
Ces deux méthodes étant proches, elles ont une différence essentielle.
- Git fetch
git fetch
permet de récupérer les branches du dépôt distant pour les envoyer dans notre projet local. Imaginons que d’autres membres du projet ont modifié des fichiers et les ont envoyés sur le dépôt distant. Nous souhaitons récupérer leurs travaux pour pouvoir travailler en local.
git fetch
envoie les nouveaux commits du dépôt distant en local sans modifier notre projet en local. Il va donc ajouter une branche distante ‘origin/master’ sans modifier notre branche ‘master’ locale.
NB : il est possible de visualiser les commits locaux et distants en même temps en ajoutant l’option --all
: git log --oneline --all
.
NB : aussi, vous pouvez vérifier le dépôt distant que vous avez importé en tapant git checkout origin/master
.
Il ne nous reste plus qu’a fusionner nos branches pour importer les commits de ‘origin/master’ dans notre branche ‘master’.
- Git pull
git pull
procède exactement de la même manière que git fetch
, mais en plus d’ajouter la branche ‘origin/master’, il procède directement à la fusion.
git pull
est donc l’association de git fetch
et git merge
.
Imaginons que d’autres membres du groupe ont modifié et push leurs travaux dans le dépôt distant. Nous souhaitons directement récupérer leurs travaux et les synchroniser avec les nôtres.
Vidéo explicative d’Arnaud Mercier pour www.codeur-pro.fr :