git pull
git remoto / git fetch / git push / git pull
Last updated
Was this helpful?
git remoto / git fetch / git push / git pull
Last updated
Was this helpful?
El comando git pull
se usa para buscar y descargar contenido de un repositorio remoto y actualizar inmediatamente el repositorio local para que coincida con ese contenido. La fusión de cambios ascendentes remotos en su repositorio local es una tarea común en los flujos de trabajo de colaboración basados en Git. El git pull
comando es en realidad una combinación de otros dos comandos, seguidos de . En la primera etapa de la operación git pull
se ejecutará un git fetch
alcance a la rama local a la que HEAD
se apunta. Una vez que se descargue el contenido, git pull
ingresará a un flujo de trabajo de combinación. Se creará y HEAD
actualizará una nueva confirmación de fusión para apuntar a la nueva confirmación.
El git pull
comando primero ejecuta git fetch
qué descarga contenido del repositorio remoto especificado. Luego git merge
se ejecuta a para fusionar las referencias de contenido remoto y se dirige a una nueva confirmación de fusión local. Para demostrar mejor el proceso de extracción y fusión, consideremos el siguiente ejemplo. Supongamos que tenemos un repositorio con una rama maestra y un origen remoto.
En este escenario, git pull
descargará todos los cambios desde el punto donde el local y el maestro divergieron. En este ejemplo, ese punto es E. git pull
buscará las confirmaciones remotas divergentes que son ABC. El proceso de extracción creará una nueva confirmación de fusión local que contiene el contenido de las nuevas confirmaciones remotas divergentes.
En el diagrama anterior, podemos ver la nueva confirmación H. Esta confirmación es una nueva confirmación de fusión que contiene el contenido de las confirmaciones ABC remotas y tiene un mensaje de registro combinado. Este ejemplo es una de las pocas git pull
estrategias de fusión. Se --rebase
puede pasar una opción a git pull
para usar una estrategia de fusión de rebase en lugar de una confirmación de fusión. El siguiente ejemplo demostrará cómo funciona una extracción de rebase. Supongamos que estamos en un punto de partida de nuestro primer diagrama y lo hemos ejecutado git pull --rebase
.
En este diagrama, ahora podemos ver que una extracción de rebase no crea la nueva confirmación H. En cambio, la rebase ha copiado las confirmaciones remotas A - B - C y ha reescrito las confirmaciones locales E - F - G para que aparezcan después de ellas en el historial de confirmaciones maestro / origen local.
Obtenga la copia del control remoto especificado de la rama actual y combínela inmediatamente en la copia local. Esto es lo mismo que sigue .git fetchgit merge origin/
Similar a la invocación predeterminada, obtiene el contenido remoto pero no crea una nueva confirmación de fusión.
Proporciona una salida detallada durante una extracción que muestra el contenido que se descarga y los detalles de la combinación.
Empieza pensando que su repositorio está sincronizado, pero luego git fetch
revela que la versión original del maestro ha progresado desde la última vez que lo verificó. Luego git merge
integra inmediatamente el maestro remoto en el local.
El git fetch
comando se puede confundir con git pull
. Ambos se utilizan para descargar contenido remoto. Se puede hacer una distinción de seguridad importante entre git pull
y get fetch
. git fetch
puede considerarse la opción "segura" mientras que, git pull
puede considerarse insegura. git fetch
descargará el contenido remoto y no alterará el estado del repositorio local. Alternativamente, git pull
descargará contenido remoto e inmediatamente intentará cambiar el estado local para que coincida con ese contenido. Esto puede causar involuntariamente que el repositorio local entre en un estado conflictivo.
La --rebase
opción se puede utilizar para garantizar un historial lineal al evitar confirmaciones de fusión innecesarias. Muchos desarrolladores prefieren reajustar a la fusión, ya que es como decir: "Quiero poner mis cambios encima de lo que todos los demás han hecho". En este sentido, usar git pull
con la --rebase
bandera es incluso más parecido svn update
a un simple git pull
.
De hecho, extraer con --rebase
es un flujo de trabajo tan común que existe una opción de configuración dedicada para ello:
Después de ejecutar ese comando, todos los git pull
comandos se integrarán mediante en git rebase
lugar de git merge
.
Los siguientes ejemplos demuestran cómo usarlo git pull
en escenarios comunes:
Ejecutar la invocación predeterminada de git pull
will es equivalente a git fetch origin HEAD
y git merge HEAD
where HEAD
es ref que apunta a la rama actual.
Este ejemplo primero realiza un pago y cambia al rama. Después de eso, git pull
se ejecuta consiendo pasado. Esto hará descender implícitamente la rama nueva de. Una vez que se complete la descarga, se iniciará un archivo git merge
.
El siguiente ejemplo demuestra cómo sincronizar con la rama maestra del repositorio central usando una rebase:
Esto simplemente mueve sus cambios locales a la parte superior de lo que todos los demás ya han contribuido.
Igual que el pull anterior En lugar de usar git merge
para integrar la rama remota con la local, use .
Puede pensar git pull
en la versión de Git de svn update
. Es una forma sencilla de sincronizar su repositorio local con los cambios anteriores. El siguiente diagrama explica cada paso del proceso de extracción.
git pull
es uno de los muchos comandos que se atribuyen la responsabilidad de "sincronizar" el contenido remoto. El comando se utiliza para especificar en qué puntos finales remotos operarán los comandos de sincronización. El
comando se usa para cargar contenido en un repositorio remoto.