Descargar cambios sin fusionar git fetch
Git fetch se usa para descargar los últimos cambios de un repositorio remoto al repositorio local, pero no los integra en la rama actual

git fetch
se usa para descargar los últimos cambios de un repositorio remoto a tu repositorio local, pero no los integra en tu rama actual, a continuación, explicaremos a detalle con ejemplos como funciona este comando de git.
git fetch
Este comando descarga los commits, archivos y referencias de un repositorio remoto, pero no los integra (fusiona) en tu rama actual. Es útil cuando quieres revisar qué cambios existen en el repositorio remoto antes de decidir integrarlos.

Observemos la imagen anterior: tenemos un repositorio remoto con la rama main y un repositorio local con su propia rama main. Notamos que la rama main local no tiene los últimos commits que sí están presentes en el repositorio remoto.
Lo que haremos con git fetch es descargar esos commits nuevos desde el repositorio remoto, pero sin integrarlos aún en nuestra rama local. Estos cambios se almacenan en una rama remota llamada origin/main. Esto nos permite revisar qué modificaciones se han hecho en el repositorio remoto antes de fusionarlas con nuestra rama main local.
De esta manera, git fetch nos da la oportunidad de analizar los cambios antes de aplicar una fusión (merge) o un rebase.
🧠 Diferencia entre git fetch
y git pull
La principal diferencia en que git fetch descarga los cambios pero no los aplica directamente a la rama local, mientras que git pull hace ambas cosas: descarga y fusiona los cambios en la rama actual.

Si quieres ver los cambios sin aplicarlos, usa git fetch
. Si quieres descargar y fusionar los cambios automáticamente, usa git pull
.
Comando | ¿Descarga cambios? | ¿Fusiona con tu rama actual? |
---|---|---|
git fetch |
✅ Sí | ❌ No |
git pull |
✅ Sí | ✅ Sí |
✅ ¿Cuándo usar git fetch
?
- Verificar cambios sin fusionarlos: Descarga los cambios sin modificarlos, lo que te permite inspeccionar los cambios antes de fusionarlos en tu rama.
- Mantener tu repositorio local actualizado: Te asegura que tu repositorio local tenga la información más reciente sobre el repositorio remoto.
- Colaborar con un equipo sin interrumpir tu trabajo: Permite mantenerte al día con los cambios sin fusionar inmediatamente, evitando posibles conflictos.
🧪 Ejemplo
Supongamos que estás trabajando en la rama main
de tu repositorio local, y en GitHub alguien ha hecho cambios y ha subido nuevos commits a la rama main
.
🔧 Paso 1: Ejecutar git fetch
git fetch origin
Esto descarga los últimos cambios de origin
(tu repositorio remoto) pero no cambia tu rama local.
📌 ¿Qué ha pasado internamente?
- Git actualiza la referencia
origin/main
con los últimos commits remotos. - Tu rama local
main
todavía está igual.
Puedes comprobarlo así:
git log main..origin/main
Esto mostrará los commits que están en origin/main
pero aún no están en tu main
local.
👀 Paso 2 (opcional): Ver diferencias
Antes de fusionar, puedes ver qué ha cambiado:
git diff main..origin/main
🔁 Paso 3: Fusionar manualmente (si decides hacerlo)
Una vez que estás listo para integrar los cambios remotos:
git merge origin/main
Esto fusionará los cambios descargados desde origin/main
con tu rama local main
.
✅ Resumen de comandos
# Descarga sin fusionar git fetch origin
# Ver commits que faltan en tu rama git log main..origin/main
# Ver diferencias
git diff main..origin/main
# Fusionar manualmente
git merge origin/main