Sinossi
git pull [--rebase] [--ff-only] [<remote> [<branch>]]
Descrizione
Il comando git pull è una scorciatoia per git fetch seguito da un passo di integrazione (merge per default, rebase opzionalmente). Aggiorna il tuo branch corrente per incorporare le modifiche upstream. Molti team preferiscono configurare pull.rebase = true o usare git pull --rebase per mantenere lineare la storia.
Se il tuo branch e l'upstream sono divergenti, git pull può produrre un merge commit. Con --ff-only, il pull fallirà piuttosto che creare un merge — utile quando vuoi essere sicuro che il tuo branch locale sia solo indietro, non divergente.
Nell'uso quotidiano, git pull si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
--rebase | Rebasa i commit locali sopra le modifiche scaricate. |
--ff-only | Solo fast-forward; aborta se sarebbe necessario un merge. |
--no-ff | Crea sempre un merge commit. |
--all | Fa fetch da tutti i remote prima di integrare. |
--autostash | Fa stash delle modifiche locali prima del pull e fa pop dopo. |
--prune | Rimuove i tracking branch obsoleti come parte del fetch. |
Esempi
git pull
# Default: scarica e mergia dall'upstream configurato
git pull --rebase origin main
# Rebasa i commit locali sull'ultimo origin/main
git pull --ff-only
# Rifiuta di creare un merge commit
git config --global pull.rebase true
# Rende il rebase il default per ogni pull
Errori comuni
Fare pull con modifiche non committate può far rifiutare il merge a Git. O committa, fai stash, o usa --autostash. Fare pull su un branch divergente spesso produce merge commit inaspettati. Usa --ff-only come rete di sicurezza o rebase esplicitamente.
Comandi correlati
git fetch, git merge, git rebase, git push