Junior
¿Cuál es la diferencia entre los comandos pull y fetch en Git?
sobes.tech AI
Respuesta de la IA
git fetch carga los cambios desde un repositorio remoto, pero no los aplica a la rama actual.
git pull realiza un git fetch, y luego fusiona automáticamente (merge) los cambios recibidos con la rama actual.
Diferencias clave:
| Comando | Acción | Impacto en la copia de trabajo / rama |
|---|---|---|
git fetch |
Carga objetos (commits, archivos) | No cambia la copia de trabajo ni la rama actual |
git pull |
Carga objetos y fusiona cambios | Actualiza la rama actual y la copia de trabajo |
Ejemplo de uso:
Para simplemente ver qué ha cambiado en el servidor remoto:
git fetch origin
(Se puede verificar los cambios con git log origin/<rama>)
Para obtener los cambios y aplicarlos automáticamente a la rama actual:
git pull origin main # por ejemplo
git pull es esencialmente equivalente a ejecutar secuencialmente git fetch y git merge o git rebase (según la configuración).
# Equivale a git pull
git fetch origin
git merge origin/main # si la rama actual es main y se usa merge como estrategia de fusión
El uso de git fetch ofrece mayor control, ya que permite revisar los cambios entrantes antes de fusionarlos. git pull es conveniente para sincronización rápida.