Git Fetch vs Pull
Ultimo aggiornamento
git fetch scarica gli ultimi commit dal remote ma lascia il tuo branch di lavoro esattamente com'era. git pull fa lo stesso download e subito dopo unisce quei commit nel branch corrente. In breve: git pull = git fetch + git merge.
Usa fetch quando vuoi guardare prima di agire; usa pull quando vuoi integrare subito le modifiche. Provali entrambi nel terminal playground: una vera shell nel tuo browser.
A confronto
| Comportamento | git fetch | git pull |
|---|---|---|
| Scarica i commit remoti | Sì | Sì |
| Modifica il branch corrente | No | Sì |
| Può causare conflitti di merge | No | Sì |
| Equivale a | solo download | fetch + merge |
Sintassi
| Comando | Cosa fa |
|---|---|
git fetch | Scarica tutte le modifiche remote, senza merge |
git fetch origin main | Fa il fetch di un solo branch da un remote |
git pull | Fa il fetch e il merge nel branch corrente |
git pull --rebase | Fa il fetch, poi il rebase dei tuoi commit in cima |
git log HEAD..origin/main | Dopo il fetch: vedi cosa andresti a unire |
Domande frequenti su git fetch vs pull
Qual è la differenza tra git fetch e git pull?
git fetch scarica i nuovi commit e aggiorna i branch di tracciamento remoti (come origin/main) ma non modifica il tuo branch di lavoro. git pull fa lo stesso fetch e poi unisce i nuovi commit nel branch corrente. Quindi pull modifica i tuoi file; fetch aggiorna solo ciò che sai del remote.git pull è solo fetch più merge?
Quando conviene usare fetch invece di pull?
Usa
git fetch quando vuoi rivedere le modifiche in arrivo prima di integrarle: per esempio git fetch e poi git log HEAD..origin/main per vedere esattamente cosa c'è di nuovo. Usa git pull quando ti fidi già delle modifiche remote e vuoi solo unirle al tuo branch.git fetch può causare conflitti?
No. Fetch aggiorna solo i branch di tracciamento remoti; non tocca mai il tuo branch di lavoro né i tuoi file, quindi non può generare conflitti di merge. I conflitti nascono solo nel passo di merge, che pull esegue automaticamente e fetch no.
Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire
git fetch e git pull in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche come lavorare con i remote passo dopo passo.