Sinopsis
git pull [--rebase] [--ff-only] [<remote> [<branch>]]
Descripción
El comando git pull es atajo para git fetch seguido de un paso de integración (merge por defecto, rebase opcionalmente). Actualiza tu branch actual para incorporar cambios de upstream. Muchos equipos prefieren configurar pull.rebase = true o usar git pull --rebase para mantener el historial lineal.
Si tu branch y el upstream han divergido, git pull puede producir un merge commit. Con --ff-only, el pull fallará en lugar de crear un merge: útil cuando quieres asegurarte de que tu branch local solo está atrás, no divergente.
En el uso diario, git pull se integra con alias de shell.
Entender cómo git pull interactúa con el modelo de datos de Git rinde dividendos.
Opciones comunes
| Opción | Descripción |
|---|---|
--rebase | Rebasea commits locales sobre los cambios descargados. |
--ff-only | Solo fast-forward; aborta si se necesitaría un merge. |
--no-ff | Siempre crea un merge commit. |
--all | Hace fetch desde todos los remotos antes de integrar. |
--autostash | Stashea cambios locales antes de pull y los reaplica después. |
--prune | Poda branches de seguimiento remoto obsoletos como parte del fetch. |
Ejemplos
git pull
# Predeterminado: fetch y merge desde upstream configurado
git pull --rebase origin main
# Rebasea commits locales sobre el último origin/main
git pull --ff-only
# Rechaza crear un merge commit
git config --global pull.rebase true
# Hace que rebase sea el predeterminado para cada pull
Errores comunes
Hacer pull con cambios no commiteados puede hacer que Git rechace el merge. O bien commitea, stashea, o usa --autostash. Hacer pull en un branch que ha divergido a menudo produce merge commits inesperados. Usa --ff-only como red de seguridad o rebasea explícitamente.
Comandos relacionados
git fetch, git merge, git rebase, git push