Il comando Git fetch in Git


Lezione 37 / 53

Il comando Git fetch in Git

Di Luca Ferretti


git guida git guida git italiano

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.

Guida Git in italiano 1 Che cos'è Git? 2 Nascita di Git 3 Principali caratteristiche di Git 4 Riga di comando e UI in Git 5 Come Installare Git 6 5 comandi Git per sviluppatori singoli 7 5 comandi Git per sviluppare collaborando 8 Repository in Git 9 Commit in Git 10 Working Copy in Git 11 Staging Area in Git 12 Branch in Git 13 Remote in Git 14 Inizializzare un nuovo repository con git init 15 Creare una copia di un repository remoto in Git con git clone 16 Configurare le opzioni di Git con git config 17 Il comando Git add in Git 18 Il comando Git commit in Git 19 Il comando Git diff in Git 20 Il comando Git stash in Git 21 .gitignore : i file ignored in Git 22 Il comando Git status in Git 23 il comando Git log in Git 24 Il comando Git tag in Git 25 Il comando Git blame in Git 26 Il comando Git checkout in Git 27 Il comando Git revert in Git 28 Il comando Git reset in Git 29 Il comando Git rm in Git 30 L'opzione Git commit –amend in Git 31 Git rebase –interactive in Git 32 Scorciatoie per comandi frequenti in Git 33 Repository condiviso in Git 34 Il modello Fork & pull 35 Il comando Git remote in Git 36 I principali repository remote di Git: Github, Gitlab e Bitbucket 37 Il comando Git fetch in Git 38 Il comando Git push in Git 39 Il comando Git pull in Git 40 Il comando Git branch in Git 41 Il comando Git checkout in Git 42 Il comando Git merge in Git 43 Risolvere un merge conflict in Git 44 Capire meglio il contenuto dei commit durante un conflitto di merge in Git 45 Workflow Git centralizzato 46 Workflow Git feature branching 47 Workflow Git trunk-based 48 Approccio “forking” in Git 49 Gitflow in Git 50 Messaggi di commit in Git 51 Tagging & Versioning in Git 52 L’opzione merge in Git 53 L’opzione rebase in Git
Scopri i corsi

Le nostre guide possono essere molto utili per muovere i primi passi nel mondo della programmazione, ma se vuoi iniziare una nuova carriera in ambito digital & tech con il supporto costante dei docenti e tantissime esercitazioni pratiche, ti consigliamo di frequentare uno dei corsi della nostra Hackademy!

Scopri i corsi