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

Descargar cambios sin fusionar git fetch
oscar Escrito por oscar 24 April 2025 582 0

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.

git fetch origin main
git fetch origin main

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.

Diferencia git fetch y git pull
Diferencia git fetch y git pull

 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

 


Comentario

Debe aceptar antes de enviar