Explicación de Git Pull

git pull es un comando de Git que se usa para actualizar la versión local de un repositorio desde un control remoto.

Es uno de los cuatro comandos que solicita la interacción de red de Git. Por defecto, git pullhace dos cosas.

  1. Actualiza la rama de trabajo local actual (rama actualmente desprotegida)
  2. Actualiza las ramas de seguimiento remoto para todas las demás ramas.

git pullrecupera ( git fetch) las nuevas confirmaciones y las fusiona ( git merge) en su rama local.

La sintaxis de este comando es la siguiente:

# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME

en el cual:

  • OPCIONES son las opciones de comando, como--quieto--verbose. Puede leer más sobre las diferentes opciones en la documentación de Git
  • REPOSITORY es la URL de su repositorio. Ejemplo: //github.com/freeCodeCamp/freeCodeCamp.git
  • REFSPEC especifica qué referencias recuperar y qué referencias locales actualizar
  • REMOTE-NAME es el nombre de su repositorio remoto. Por ejemplo: origen .
  • BRANCH-NAME es el nombre de su sucursal. Por ejemplo: desarrollar .

Nota

Si tiene cambios no confirmados, la parte de fusión del git pullcomando fallará y su rama local quedará intacta.

Por lo tanto, siempre debe confirmar sus cambios en una rama antes de extraer nuevas confirmaciones de un repositorio remoto.

Tabla de contenido

  • Utilizando git pull
  • Control de versiones distribuidas
  • git fetch + git merge
  • git pull en IDE

Usando git pull

Úselo git pullpara actualizar un repositorio local desde el repositorio remoto correspondiente. Por ejemplo: mientras trabaja localmente master, ejecute git pullpara actualizar la copia local mastery actualice las otras ramas de seguimiento remoto. (Más información sobre las sucursales de seguimiento remoto en la siguiente sección).

Pero, hay algunas cosas a tener en cuenta para que ese ejemplo sea cierto:

El repositorio local tiene un repositorio remoto vinculado

  • Verifique esto ejecutando git remote -v
  • Si hay varios controles remotos, es git pullposible que no haya suficiente información. Es posible que deba ingresar git pull origino git pull upstream.

La sucursal en la que está actualmente registrado tiene una sucursal de seguimiento remoto correspondiente

  • Verifique esto ejecutando git status. Si no hay una sucursal de seguimiento remoto, Git no sabe dónde extraer información a partir .

Control de versiones distribuidas

Git es un sistema de control de versiones distribuido (DVCS). Con DVCS, los desarrolladores pueden trabajar en el mismo archivo al mismo tiempo en entornos separados. Después de enviar el código al repositorio remoto compartido, otros desarrolladores pueden extraer el código modificado.

Interacciones de red en Git

Solo hay cuatro comandos que solicitan interacciones de red en Git. Un repositorio local no tiene conocimiento de los cambios realizados en el repositorio remoto hasta que hay una solicitud de información. Y un repositorio remoto no tiene conocimiento de los cambios locales hasta que se envían las confirmaciones.

Los cuatro comandos de red son:

  • git clone
  • git fetch
  • git pull
  • git push

Sucursales en DVCS

Cuando se trabaja con Git, puede parecer que hay muchas copias del mismo código flotando por todas partes. Hay diferentes versiones del mismo archivo en cada rama. Y diferentes copias de las mismas ramas en la computadora de cada desarrollador y en el control remoto. Para realizar un seguimiento de esto, Git usa algo llamado ramas de seguimiento remoto .

Si ejecuta git branch --alldentro de un repositorio de Git, las ramas de seguimiento remoto aparecen en rojo. Estas son copias de solo lectura del código tal como aparece en el control remoto. (¿Cuándo fue la última interacción de red que habría traído información localmente? Recuerde cuándo se actualizó por última vez esta información. La información en las ramas de seguimiento remoto refleja la información de esa interacción).

Con las ramas de seguimiento remoto , puede trabajar en Git en varias ramas sin interacción de red. Cada vez que ejecuta comandos git pullo git fetch, actualiza las ramas de seguimiento remoto .

git fetch plus git merge

git pulles un comando de combinación, igual a git fetch+ git merge.

git fetch

Por sí solo, git fetchactualiza todas las ramas de seguimiento remoto en el repositorio local. En realidad, no se reflejan cambios en ninguna de las ramas de trabajo locales.

git merge

Sin ningún argumento, git mergefusionará la rama de seguimiento remoto correspondiente a la rama de trabajo local.

git pull

git fetchactualiza las sucursales de seguimiento remoto. git mergeactualiza la rama actual con la rama de seguimiento remoto correspondiente. Al usar git pull, obtienes ambas partes de estas actualizaciones. Pero esto significa que si está desprotegido para featurebifurcar y ejecuta git pull, cuando realice el pago master, no se incluirán nuevas actualizaciones. Siempre que realice el pago a otra rama que pueda tener nuevos cambios, siempre es una buena idea ejecutarla git pull.

git pull en IDE

El lenguaje común en otros IDES puede no incluir la palabra pull. Si busca las palabras git pullpero no las ve, busque la palabra en su synclugar.

obtener un PR remoto (solicitud de extracción) en el repositorio local

Para fines de revisión y demás, los RP en remoto deben buscarse en el repositorio local. Puede usar el git fetchcomando de la siguiente manera para lograr esto.

git fetch origin pull/ID/head:BRANCHNAME

ID es el ID de la solicitud de extracción y BRANCHNAME es el nombre de la rama que desea crear. Una vez que se ha creado la rama, puede usar git checkoutpara cambiar a esa rama.

Otros recursos sobre git en guide.freecodecamp.org

  • Fusionar Git
  • Git checkout
  • Git commit
  • Git alijo
  • Rama de Git