¿Cuál es la diferencia entre `git fetch`, `git pull` y `git push`?
Ver respuesta — intenta responderla en voz alta primero
git push sube tus commits locales al remoto. git fetch baja los cambios del remoto pero no los integra a tu rama; solo actualiza tu conocimiento del remoto. git pull baja e integra en un solo paso: es un fetch seguido de un merge (o rebase).
Estos tres comandos mueven commits entre tu repo local y el remoto.
git push: envía tus commits locales al remoto para que los demás los vean.git fetch: descarga los commits nuevos del remoto y actualiza las ramas remotas (origin/main), pero no toca tu rama local. Tu trabajo queda intacto; solo te enteras de qué hay nuevo. Es la opción segura para "mirar antes de integrar".git pull: hacegit fetchy además integra esos cambios en tu rama actual (por defecto con merge). Es cómodo pero puede provocar conflictos o merges inesperados.
La diferencia clave entre fetch y pull: fetch solo mira, pull mira y aplica.
# Subir tus commits locales al remoto
git push
# o especificando rama: git push origin main
# Bajar los cambios del remoto SIN integrarlos (seguro)
git fetch origin
# Ahora origin/main está actualizado, pero tu rama local no cambió
git log origin/main --oneline # puedes revisar qué llegó
# Integrar manualmente después del fetch
git merge origin/main
# Bajar E integrar en un solo paso
git pull
# equivale a: git fetch + git merge
# Bajar e integrar usando rebase en vez de merge
git pull --rebase
Usar git pull a ciegas cuando tienes cambios locales sin commitear o cuando la rama divergió, y llevarte un conflicto o un merge sorpresa. Muchos equipos prefieren git fetch + revisar + integrar, o git pull --rebase para mantener el historial lineal. Otro error: confundir fetch con pull creyendo que fetch ya actualizó tu rama de trabajo (no lo hace).
"
git pushsube mis commits al remoto.git fetchbaja los cambios del remoto pero no los integra: solo actualiza las ramas remotas comoorigin/main, así que puedo revisar antes de aplicar nada.git pulles unfetchmás unmergeen un solo paso: baja e integra directamente en mi rama. La diferencia clave es quefetchsolo mira ypullmira y aplica. A veces prefierofetchy luego integrar a mano, opull --rebasepara mantener el historial lineal."
Quieres ver qué cambios subieron tus compañeros al remoto, pero sin tocar tu trabajo local todavía. ¿fetch o pull?
Ver respuesta
git fetch. Descarga los commits nuevos y actualiza las ramas remotas (como origin/main) sin modificar tu rama local, así que puedes revisar con calma (por ejemplo con git log origin/main) antes de decidir integrarlos con merge o rebase. git pull los aplicaría de inmediato a tu rama, que es justo lo que quieres evitar en este caso.