Menu
Coddy logo textTech

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.

git fetch scarica i nuovi commit e aggiorna solo origin/main, mentre il tuo branch aspetta; git pull li unisce subito.

A confronto

Comportamentogit fetchgit pull
Scarica i commit remotiSìSì
Modifica il branch correnteNoSì
Può causare conflitti di mergeNoSì
Equivale asolo downloadfetch + merge

Sintassi

ComandoCosa fa
git fetchScarica tutte le modifiche remote, senza merge
git fetch origin mainFa il fetch di un solo branch da un remote
git pullFa il fetch e il merge nel branch corrente
git pull --rebaseFa il fetch, poi il rebase dei tuoi commit in cima
git log HEAD..origin/mainDopo 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?
Sì. git pull è una scorciatoia per git fetch seguito da un git merge del branch scaricato in quello corrente. Con git pull --rebase, il secondo passo è un rebase invece di un merge, e la cronologia resta lineare.
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.
Illustrazione dei linguaggi di programmazione di Coddy

Impara Git con Coddy

INIZIA