Git Fetch vs Pull
Dernière mise à jour
git fetch télécharge les derniers commits du dépôt distant mais laisse votre branche de travail exactement telle qu'elle était. git pull effectue le même téléchargement puis fusionne immédiatement ces commits dans votre branche actuelle. En bref : git pull = git fetch + git merge.
Utilisez fetch quand vous voulez regarder avant de vous lancer ; utilisez pull quand vous êtes prêt à intégrer. Essayez les deux dans le terminal playground : un vrai shell dans votre navigateur.
Côte à côte
| Behavior | git fetch | git pull |
|---|---|---|
| Télécharge les commits distants | Oui | Oui |
| Modifie votre branche actuelle | Non | Oui |
| Peut provoquer des conflits de fusion | Non | Oui |
| Équivaut à | téléchargement seul | fetch + merge |
Syntaxe
| Command | What it does |
|---|---|
git fetch | Télécharge tous les changements distants, sans fusionner |
git fetch origin main | Récupère une seule branche depuis un dépôt distant |
git pull | Télécharge et fusionne dans la branche actuelle |
git pull --rebase | Télécharge, puis rebase vos commits par-dessus |
git log HEAD..origin/main | Après le fetch : voyez ce que vous fusionneriez |
FAQ Git fetch vs pull
Quelle est la différence entre git fetch et git pull ?
git fetch télécharge les nouveaux commits et met à jour vos branches de suivi distant (comme origin/main) mais ne modifie pas votre branche de travail. git pull effectue ce même fetch puis fusionne les nouveaux commits dans votre branche actuelle. Ainsi, pull modifie vos fichiers ; fetch met simplement à jour votre connaissance du dépôt distant.git pull est-il juste fetch plus merge ?
Oui.
git pull est un raccourci pour git fetch suivi d'un git merge de la branche récupérée dans votre branche actuelle. Avec git pull --rebase, la deuxième étape est un rebase au lieu d'un merge, ce qui garde l'historique linéaire.Quand devrais-je utiliser fetch plutôt que pull ?
Utilisez
git fetch quand vous voulez examiner les changements entrants avant de les intégrer : par exemple, git fetch puis git log HEAD..origin/main pour voir exactement ce qui est nouveau. Utilisez git pull quand vous faites déjà confiance aux changements distants et voulez simplement les fusionner dans votre branche.git fetch provoque-t-il parfois des conflits ?
Non. Fetch met uniquement à jour les branches de suivi distant ; il ne touche jamais à votre branche de travail ni à vos fichiers, il ne peut donc pas produire de conflits de fusion. Les conflits n'apparaissent qu'à l'étape de merge, que pull effectue automatiquement mais pas fetch.
Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter
git fetch et git pull dans un vrai shell dans votre navigateur, sans rien à installer. Le cours Git interactif et gratuit de Coddy couvre également le travail avec les dépôts distants étape par étape.