Il comando Git fetch in Git | Aulab

GUIDE PER ASPIRANTI PROGRAMMATORI

Il comando Git fetch in Git

Abbiamo visto come Git permetta a ogni repository di tenere traccia dei repository (remoti) a cui è connesso tramite il comando git remote. La sincronizzazione delle modifiche tra diversi repository è effettuata da altri comandi, ognuno dei quali ha la sua specifica responsabilità. Il comando Git fetch in Git Lo scopo di git fetch è…

Lezione 36 / 52
Luca Ferretti
Immagine di copertina

Vuoi avviare una nuova carriera o fare un upgrade?

Trova il corso Digital & Tech più adatto a te nel nostro catalogo!

Abbiamo visto come Git permetta a ogni repository di tenere traccia dei repository (remoti) a cui è connesso tramite il comando git remote.

La sincronizzazione delle modifiche tra diversi repository è effettuata da altri comandi, ognuno dei quali ha la sua specifica responsabilità.

Il comando Git fetch in Git

Lo scopo di git fetch è quello di scaricare commit, branch e tag da un repository remoto nel repository locale. I nuovi contenuti recuperati tramite git fetch vanno esplicitamente applicati alla propria working copy, rendendo, quindi, l’esecuzione di tale comando un’operazione sicura per recuperare nuovi commit, senza necessariamente doverli applicare al proprio lavoro in corso.

Supponiamo di aver clonato ieri un repository remoto in cui era presente solo il branch main e che tale branch contenesse tre commit. La mia copia locale quindi sa di essere “connessa” al repository remoto indicato come origin e la mia working copy ha estratto l’ultimo commit dell’unico branch presente, collegando il branch locale main al corrispettivo branch con lo stesso nome su origin

❯ git branch -vv
* main c7ed69f [origin/main] implemented first feature

Un altro collaboratore ha aggiunto alcuni commit su main e creato un nuovo branch.

$ git fetch
c7ed69f..45e66a4 main -> origin/main
* [new branch] some-feature -> origin/some-feature

$ git status
On branch main
Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)

I nuovi commit e il nuovo branch sono ora disponibili anche nel repository locale, ma non sono stati applicati. Questo perché sebbene nel repository locale siano ora presenti tutti i commit, sia locali che remoti, Git mantiene separati i commit dei branch locali rispetto a quelli dei branch remoti

Commit locali e remoti

Commit locali e remoti

Sarà possibile vedere quali commit sono stati aggiunti a origin/master tramite git log e applicare i nuovi commit sul proprio branch locale tramite git merge.

$ git log --oneline main..origin/main
22596179 (origin/main, origin/HEAD) new commit two
f8986356 new commit one

$ git merge origin/main
Updating c7ed69f..45e66a4
Fast-forward

Post merge

Post merge

Vedremo più avanti cosa fare nel caso in cui siano stati aggiunti commit alla propria versione locale.

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626