git pull
Definición
El comando git pull obtiene y descarga contenido del repositorio remoto e integra los cambios en el repositorio local. El comando git pull se ejecuta como la combinación de git fetch seguido de git merge.

Uso de git pull
El comando git pull es uno de los comandos que participan en el proceso de "sincronización". Estos comandos funcionan en las ramas remotas que se configuran con el comando git remote. Los commits se suben con git push y se descargan con git fetch y git pull. Después de realizar cambios en ambos casos, se utiliza git merge para integrar los cambios. Tanto git fetch como git pull se utilizan para descargar el contenido del repositorio remoto. El comando git fetch no obliga a fusionar los cambios en el repositorio, mientras que el comando git pull no solo descarga el contenido remoto, sino que también lo fusiona con la copia de trabajo actual.
Cómo funciona
Para entender el proceso de pull y fusión, supongamos el siguiente ejemplo. Hay un repositorio con una rama master y un origen remoto. El comando git pull descarga los cambios desde el punto donde las ramas local y master divergieron. La ilustración muestra que ese punto es E. Aquí puedes ver los commits remotos A, B y C que serán obtenidos por git pull. Luego, se creará un nuevo commit de fusión local con el contenido de los nuevos commits remotos divergentes.

La ilustración muestra el nuevo commit H, que contiene todo el contenido de los commits A, B y C con un mensaje de registro combinado.

El comando git pull con la opción --rebase se utiliza para la fusión en lugar de git merge.

Opciones comunes
| Comando | Descripción |
|---|---|
git pull <remote> | Obtiene el contenido remoto y lo fusiona directamente en la copia local (equivalente a git fetch <remote> seguido de git merge origin/<current-branch>). |
git pull --no-commit <remote> | Obtiene el contenido remoto pero no crea un commit de fusión. |
git pull --rebase <remote> | Integra la rama remota con la local. |
git pull --verbose | Muestra el contenido descargado y los detalles de la fusión, proporcionando una salida detallada durante un pull. |
Ejemplos
Invocar git pull sin argumentos obtiene y fusiona cambios desde la rama upstream configurada para la rama actual. HEAD es una referencia que apunta a la rama actual.
git pull
git pullObtener cambios de una rama específica de un repositorio remoto:
git pull en remotos
git pull <remote> <branch>Este comando obtendrá y fusionará los cambios desde la rama especificada del repositorio remoto.
Por ejemplo, si deseas obtener cambios de la rama develop del remoto origin, usarías el siguiente comando:
git pull origin developObtener cambios de un repositorio remoto y rebasear tus cambios sobre ellos:
git pull mediante rebase
git pull --rebaseEste comando obtendrá los cambios del repositorio remoto y rebaseará tus cambios locales sobre ellos, en lugar de fusionarlos. Esto puede ser útil si deseas mantener un historial de commits lineal y evitar commits de fusión.
Obtener cambios de un repositorio remoto sin fusionar automáticamente:
git pull --no-commit
git pull --no-commitEste comando obtendrá los cambios del repositorio remoto, pero no los fusionará automáticamente en tu rama local. En su lugar, dejará los cambios como cambios preparados (staged), que puedes revisar y confirmar manualmente.
Práctica
¿Cuáles de las siguientes afirmaciones sobre el comando 'git pull' son verdaderas?