Git Fetch: una clase magistral


fatmawati achmad zaenuri/Shutterstock.com

El comando git fetch es como un comando git pull que actualiza tu repositorio local con información y confirma desde el repositorio remoto, sin sobrescribir tus archivos de trabajo.

el git fetch El comando te permite mirar antes de saltar. Puede descubrir qué cambios se han realizado en un repositorio remoto, pero sin sobrescribir sus archivos locales con los archivos remotos.

¿Qué es git fetch y qué hace?

El fetch El comando en Git descarga confirmaciones, archivos y otra información desde un repositorio remoto a su repositorio local, de forma segura. Use fetch cuando desee ver qué cambios han realizado otros desarrolladores, sin verse obligado a aceptar los cambios. Sus archivos locales permanecen intactos. ¿Por qué es eso importante?

Tienes que mantener tu ingenio sobre ti cuando trabajas como parte de un equipo de desarrollo. El repositorio remoto o central contendrá cambios y nuevas ramas que otros desarrolladores han creado y enviado al repositorio remoto.

Es muy posible que alguien haya actualizado la copia remota de los archivos que ha modificado localmente en su computadora. Si casualmente realiza una git pull para actualizar su repositorio local, es probable que se encuentre manejando fusiones para cambios que quizás ni siquiera desee.

Una vez que haya descargado la información, puede examinarla y ver cuáles son los cambios. Esto le permite tomar una decisión informada sobre lo que desea fusionar en este momento, en todo caso, y lo que desea diferir hasta más adelante.

Git buscar vs tirar

El git fetch El comando se comporta como el git pull mando pero sin el paso que sobrescribe sus archivos locales. Su repositorio local se actualiza y sincroniza, pero los cambios no se escriben en el estado de funcionamiento de su repositorio local, por lo que sus archivos permanecen intactos.

O, dicho de otro modo, el git pull El comando es como un git fetch seguido inmediatamente por un git merge .

Sincroniza tus repositorios locales y remotos con git fetch

Para obtener todos los metadatos actualizados y confirmaciones de un repositorio remoto a su repositorio local, use el git fetch comando con el nombre o URL del repositorio remoto. De forma predeterminada, el primer repositorio remoto se llama «origen».

git fetch origin

Puede omitir la palabra «origen» si está trabajando con un solo repositorio remoto.

git fetch

Usando el comando git fetch en el repositorio remoto predeterminado

Eso recupera cualquier actualización del repositorio de «origen», pero no fusiona los cambios en los archivos de trabajo. Podemos ver que hay una nueva rama, llamada «nueva rama», que se ha recuperado para nosotros.

Una vez que hayas usado el fetch comando, puede ver la lista completa de sucursales en el control remoto, usando -r (remoto) con el comando branch.

git branch -r

Mirando las sucursales que existen en el control remoto predeterminado

Esto enumera todas las sucursales que conoce el control remoto, que después de la fetch también están en su repositorio local.

Ver todas las etiquetas obtenidas

Del mismo modo, puede utilizar el tag (nota, es «etiqueta» sin «s») para ver la lista de etiquetas.

git tag

Usando el comando git tag para listar las etiquetas en el repositorio local

RELACIONADO: Cómo cambiar, agregar y eliminar controles remotos de Git

Hacer una carrera en seco primero

Aunque un git fetch no fusiona los cambios en sus archivos de trabajo, aún actualiza su repositorio local. Si quieres ver qué cambia el fetch ejecutará el comando, sin hacerlos realmente, use el --dry-run opción.

git fetch --dry-run

Usando la opción --dry-run para ver los cambios que recuperaría el comando fetch

Cómo obtener una sola rama

Obtener información sobre una sola sucursal es fácil. Agregue el nombre de la rama a la línea de comando para indicar fetch solo necesita saber acerca de esa rama.

Aquí, estamos diciendo fetch para recuperar la rama «mary-feature» del repositorio remoto «origen».

git fetch origin mary-feature

Usando git fetch para recuperar una sola rama remota

Ahora que los detalles y el contenido de la rama remota están en su repositorio local, puede usar el git checkout Comando para crear una nueva sucursal y verificar la sucursal remota. Esto no sobrescribirá ningún archivo existente si es la primera vez que usa esta rama.

git checkout -b mary-feature origin/mary-feature

Comprobación segura de una sucursal remota recuperada a una nueva sucursal local

Obtener todas las sucursales

Si usa varios controles remotos, puede ahorrar tiempo extrayendo todos los cambios de todas las sucursales a su repositorio local usando el --all opción.

git fetch --all

Comparación de sucursales locales y remotas

Para ver cómo los archivos en una rama remota difieren de sus copias locales, use git fetch luego usa el git log dominio.

Tenga en cuenta que las sucursales locales y remotas tienen dos períodos «..” separándolos. El --oneline La opción muestra el identificador de confirmación y el mensaje de confirmación.

git fetch
git log --oneline mary-feature..origin/mary-feature

Usar git para obtener los cambios remotos y git log para mostrar los cambios

La visualización de una línea es útil si una rama contiene muchos cambios. Para ver un poco más de información, omita el --oneline opción.

git log mary-feature..origin/mary-feature

Omitir la opción --oneline para que git muestre más detalles para cada confirmación

Esto nos muestra la hora y la fecha de cada confirmación, junto con el mensaje de confirmación y los datos de contacto del autor del cambio.

Sincronización de una sucursal local con una sucursal remota

Si ha decidido que desea continuar y fusionar los cambios de la rama remota con sus archivos de trabajo locales, puede usar estos comandos.

Verificaremos la sucursal para asegurarnos de que estamos trabajando, es nuestra sucursal actual y en funcionamiento.

git checkout mary-feature

Revisando una sucursal

La rama está verificada para nosotros y se nos dice que está detrás de la versión remota. Nosotros podemos usar git pull para actualizarlo, entonces git status para comprobar nuestro estado.

git pull
git status

Extraer cambios del repositorio de rmeote al local

Si hemos realizado algunos cambios en nuestros archivos locales, Git nos informa cuando revisamos la rama que necesitaremos realizar un git pull para iniciar una fusión.

git checkout mary-feature

Git nos informa que las ramas local y remota se han separado y deben fusionarse

Un simple git pull inicia el proceso de recuperación de archivos y fusión, o podemos sumergirnos y usar git merge sí mismo. Comenzaremos por asegurarnos de que estamos trabajando con la rama correcta

git checkout mary-feature

Git nos informa que las ramas local y remota se han separado y deben fusionarse

Bien dicho git para fusionar nuestra rama actual con la rama en el repositorio remoto, hay seis compromisos diferentes que deben resolverse.

Un mensaje de fusión exitoso

Necesitamos decirle a Git qué rama remota queremos fusionar.

git merge origin/mary-feature

usando git merge para fusionar los cambios remotos en una rama local

Se abre un editor que nos permite proporcionar un mensaje de confirmación. Podemos aceptar el mensaje sugerido, o agregar el nuestro. El editor es su editor predeterminado a menos que Git se haya configurado para usar un editor diferente.

Editando el mensaje de confirmación

Guarde sus cambios cuando esté listo para continuar. La combinación continúa automáticamente cuando se cierra el editor.

Nuestra fusión fue exitosa porque no hubo conflictos.

Un mensaje de fusión exitoso

Los conflictos surgen cuando dos o más desarrolladores modifican las mismas líneas de código. Si ese es el caso, Git marca los conflictos en el archivo afectado. Deberá revisarlos uno por uno y elegir qué cambio desea conservar.

El cachorro a medio entrenar

Como un cachorro en entrenamiento, fetch recuperará lo que pidas, pero no lo dejará. Si realmente quieres lo que el cachorro te ha mostrado, tendrás que pull.

RELACIONADO: Git rebase: Todo lo que necesitas saber





Source link-39