Git Fetch vs Pull: ¿Cuál es la diferencia entre los comandos Git Fetch y Git Pull?

Git pully fetchson dos comandos que los usuarios de Git utilizan habitualmente. Veamos la diferencia entre ambos comandos.

Por el bien del contexto, vale la pena recordar que probablemente estemos trabajando en un repositorio de clones. ¿Qué es un clon? Es simplemente un duplicado de otro repositorio. Básicamente se trata de obtener su propia copia del código fuente de otra persona.

Dicho esto, para mantener su clon actualizado con los cambios que se hayan aplicado al original, deberá llevarlos a su clon.

Ahí es donde fetchy pullentra.

git fetch es el comando que le dice a tu git local que recupere la información de metadatos más reciente del original (pero no realiza ninguna transferencia de archivos. Es más como verificar si hay cambios disponibles).

git pull por otro lado, Y trae (copia) esos cambios desde el repositorio remoto.

Por ejemplo:

git pull origin ankur bugfix

La conclusión es tener en cuenta que generalmente hay al menos tres copias de un proyecto en su estación de trabajo.

  • Una copia es su propio repositorio con su propio historial de confirmaciones (el ya guardado, por así decirlo).
  • La segunda copia es su copia de trabajo donde está editando y construyendo (aún no comprometida con su repositorio).
  • La tercera copia es su copia local "en caché" de un repositorio remoto (probablemente el original desde donde clonó el suyo).

Puede utilizar git fetchpara conocer los cambios realizados en el repositorio / rama remota desde su última extracción. Esto es útil para permitir la verificación antes de realizar una extracción real, lo que podría cambiar archivos en su rama actual y copia de trabajo (y potencialmente perder sus cambios, etc.).

git fetch git diff ...origin