Diferencias entre git pull y git fetch

Es muy importante saber cuáles son las diferencias entre git pull y git fetch cuando estamos trabajando con un repositorio en Git.

Diferencias entre git pull y git fetch

git pull y git fetch son dos comandos que se usan con mucha frecuencia por los usuarios de Git. ¿Cuáles con las diferencias entre pull y fetch?

Tanto pull como fetch se utilizan para mantener el repositorio actualizado con los cambios que haya habido. No siempre, pero en muchos casos hay más de una persona trabajando en un repositorio, por lo que cuando una persona hace cambios en un repositorio remoto con un git push, nuestro repositorio local estará desactualizado y tendremos que traernos los cambios que se hayan hecho.

Pero, ¿es lo mismo git pull que git fetch?

La respuesta es no.

Veamos un ejemplo de diferencias entre git fetch y git pull en el que entran en juego 3 partes:

  • Repositorio remoto: sería el que se almacena en GitHub.
  • Repositorio local: es una copia del repositorio remoto que se almacena en tu ordenador o en un servidor, por ejemplo.
  • Espacio de trabajo: los archivos con los que trabajas directamente en Visual Studio Code, PyCharm o con cualquier editor de código.
Diferencias entre git fetch y git pull
  • git fetch es el comando que hace que tu repositorio Git local se actualice con la última información que hay en el repositorio remoto, pero no hace ninguna transferencia de archivos a tu espacio de trabajo local (el código que ves en tu editor por ejemplo). Podría decirse que sirve para comprobar si hay algún cambio y traerlo a tu repositorio local.
  • git pull es el comando que comprueba si hay cambios en el repositorio remoto y, en caso de que los haya, se trae esos archivos a tu repositorio local y actualiza tu espacio de trabajo (tu IDE, tus archivos).

Simplificando mucho la explicación, git pull hace un git fetch seguido de un git merge.