📒
Git
  • Qué es Git
  • Por qué Git para su organización
  • Como instalar GIT
  • Claves SSH
  • Configuración de un repositorio
  • sincronización de git
    • git remoto
    • git fetch
    • git push
    • git pull
  • Gitflow
Powered by GitBook
On this page
  • Uso de Git pull
  • Cómo funciona
  • Opciones comunes
  • Discusión de git pull
  • Git pull y sincronización
  • Tirando a través de Rebase
  • Ejemplos de Git Pull
  • Comportamiento por defecto
  • Git tire de los controles remotos
  • Git pull rebase en lugar de fusionar

Was this helpful?

  1. sincronización de git

git pull

git remoto / git fetch / git push / git pull

Previousgit pushNextGitflow

Last updated 4 years ago

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 pullcomando es en realidad una combinación de otros dos comandos, seguidos de . En la primera etapa de la operación git pullse ejecutará un git fetchalcance a la rama local a la que HEADse apunta. Una vez que se descargue el contenido, git pullingresará a un flujo de trabajo de combinación. Se creará y HEADactualizará una nueva confirmación de fusión para apuntar a la nueva confirmación.

Uso de Git pull

Cómo funciona

El git pullcomando primero ejecuta git fetchqué descarga contenido del repositorio remoto especificado. Luego git mergese 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 pulldescargará todos los cambios desde el punto donde el local y el maestro divergieron. En este ejemplo, ese punto es E. git pullbuscará 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 pullestrategias de fusión. Se --rebasepuede pasar una opción a git pullpara 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.

Opciones comunes

git pull <remote>

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/

git pull --no-commit <remote>

Similar a la invocación predeterminada, obtiene el contenido remoto pero no crea una nueva confirmación de fusión.

git pull --rebase <remote>
git pull --verbose

Proporciona una salida detallada durante una extracción que muestra el contenido que se descarga y los detalles de la combinación.

Discusión de git pull

Empieza pensando que su repositorio está sincronizado, pero luego git fetchrevela que la versión original del maestro ha progresado desde la última vez que lo verificó. Luego git mergeintegra inmediatamente el maestro remoto en el local.

Git pull y sincronización

El git fetchcomando se puede confundir con git pull. Ambos se utilizan para descargar contenido remoto. Se puede hacer una distinción de seguridad importante entre git pully get fetch. git fetchpuede considerarse la opción "segura" mientras que, git pullpuede considerarse insegura. git fetchdescargará el contenido remoto y no alterará el estado del repositorio local. Alternativamente, git pulldescargará 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.

Tirando a través de Rebase

La --rebaseopció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 pullcon la --rebasebandera es incluso más parecido svn updatea un simple git pull.

De hecho, extraer con --rebasees un flujo de trabajo tan común que existe una opción de configuración dedicada para ello:

git config --global branch.autosetuprebase always

Después de ejecutar ese comando, todos los git pullcomandos se integrarán mediante en git rebaselugar de git merge.

Ejemplos de Git Pull

Los siguientes ejemplos demuestran cómo usarlo git pullen escenarios comunes:

Comportamiento por defecto

git pull

Ejecutar la invocación predeterminada de git pullwill es equivalente a git fetch origin HEADy git merge HEADwhere HEADes ref que apunta a la rama actual.

Git tire de los controles remotos

git checkout new_feature
git pull <remote repo>

Este ejemplo primero realiza un pago y cambia al rama. Después de eso, git pullse 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.

Git pull rebase en lugar de fusionar

El siguiente ejemplo demuestra cómo sincronizar con la rama maestra del repositorio central usando una rebase:

git checkout master
git pull --rebase origin

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 mergepara integrar la rama remota con la local, use .

Puede pensar git pullen 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 pulles 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.

git rebase
git remote
git push
git fetch
git merge