Articolo originale: Git Fetch vs Pull: What's the Difference Between the Git Fetch and Git Pull Commands?
I comandi di Git pull
e fetch
sono usati regolarmente dagli utenti di Git. Vediamo qual è la differenza tra questi due comandi.
Per contestualizzare, è bene ricordare che stiamo probabilmente lavorando in un repo clone. Cosa è un clone? È semplicemente un duplicato di un altro repo: praticamente è la tua copia del codice sorgente di qualcun altro.
Detto questo, per tenere il tuo clone aggiornato, avrai bisogno di portare al tuo clone i cambiamenti che possono essere stati fatti all'originale.
È qui che fetch
e pull
entrano in gioco.
git fetch
è il comando che dice al tuo git locale di ottenere i meta-dati più recenti dall'originale (ma non fa nessun trasferimento di file. È più che altro per vedere se ci sono cambiamenti disponibili).
git pull
, d'altra parte, fa quello e copia i cambiamenti dal repository remoto.
Per esempio:
git pull origin ankur bugfix
Il punto principale da tenere a mente è che, in genere, ci sono almeno tre copie di un progetto nel tuo spazio di lavoro.
- Una copia è il tuo repository con la tua storia dei commit (quella già salvata, per così dire)
- La seconda copia è la tua copia di lavoro dove stai modificando e costruendo (non ancora in un commit sul tuo repository)
- La terza copia è la copia cache del repository remoto (forse l'originale da cui hai clonato il tuo).
Puoi usare git fetch
per conoscere i cambiamenti fatti nel branch/repo remoto dal tuo ultimo pull. Questo è utile per permettere di controllare prima di fare un pull, che potrebbe cambiare i file nel tuo branch corrente e nella copia di lavoro (e potenzialmente perdere i tuoi cambiamenti, ecc).
git fetch
git diff ...origin