Quali sono le differenze tra git pull e git fetch?

di Lorenzo Neri

Quali sono le differenze fra git pull e git fetch? Lanciando un “git pull” questo esegue un “git fetch” seguito in automatico da un “git merge”: ma in questo articolo, scoprirai in ogni singolo dettaglio legato a questa differenza.

Come detto un paragrafo fa, sostanzialmente fra un pull e un fetch è l’esecuzione automatica di un comando, ma sarebbe fin troppo restrittiva come spiegazione e ti prometto che se mi seguirai fino in fondo capirai tutto questo.

Ma prima, permettimi di presentarmi.


Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Devi sapere che all’interno di questo blog, raccolgo tutti i fallimenti che ho realizzato nel corso della mia vita lavorativa. Per dirtela meglio: tutti quei fallimenti che mi hanno portato a realizzare una soluzione funzionante ad un problema!
Poi però mi sono detto: perché non offrire queste soluzioni a persone come te?

Per poi dirmi anche: ma sì dai, creiamo anche una categoria completa che raccolga tutto ciò che riguarda GIT e il version control!

E quindi, eccoci qui in un nuovo episodio: spiegarti quali sono le differenze tra eseguire una “git pull” oppure “git fetch”.

Git fetch vs git pull: partiamo dal principio

Ricordiamoci innanzitutto: cosa fa “git pull”?

Questo comando all’interno del VCS basato su GIT, integra i cambiamenti di un repository remoto all’interno del branch in cui si sta lavorando.

Cosa fa invece “git fetch”?

Eseguendo “git fetch” scaricheremo i branch e/o i tags (a seconda delle nostre preferenze) da uno o più repository remoti.

Perciò, qual è la vera differenza tra i due?

È abbastanza semplice: “git fetch” non cambia alcuno dei branch locali posti sotto “refs/heads”. In altre parole puoi eseguire periodicamente “git fetch” senza dover cambiare la tua copia locale di lavoro.

“git fetch” diventa un modo sicuro per evitare di sovrascrivere la copia locale del repository.

“git pull” invece, esegue un aggiornamento completo della copia locale del tuo repository, allineandola con la versione remota.

Tutti i cambiamenti presenti sul repository remoto, vengono replicati su quello locale.

Il rischio qual è?

Se non stai attento, rischi di cancellare (potenzialmente) ore o addirittura giorni di lavoro!

Ma c’è anche un altro rischio!

Non sapere da parte tua se questo articolo ti è stato davvero utile!

Fammi sapere cosa ne pensi con un commento qui sotto! Oppure se pensi che possa aiutare un tuo collega o un tuo amico… Condividi pure questo articolo! 😀

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più