Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Sincronización de los Repositorios | Flujos de Trabajo Más Avanzados
Fundamentos de GitHub

Sincronización de los Repositorios

Desliza para mostrar el menú

Como se mencionó en el capítulo anterior, es necesario sincronizar la rama local con el repositorio remoto. Para ello, se debe ejecutar el comando git pull:

git pull
Intento de pull

Al ejecutar el comando git pull, Git obtuvo actualizaciones pero detectó que las ramas local y remota han divergido, lo que significa que existen cambios en ambas ramas que deben conciliarse. Git no pudo continuar porque necesita saber cómo manejar estas diferencias, así que se debe establecer la opción merge y ejecutar nuevamente el comando git pull:

git config pull.rebase false
Note
Nota

La operación rebase se abordará más adelante en este curso.

git pull
Conflicto de fusión

Git intentó fusionar automáticamente los cambios locales y remotos en README.md, pero encontró un conflicto de fusión. Observa el árbol de commits, que indica dónde ocurrieron las divergencias y los conflictos:

git log --graph --oneline --all
Árbol de commits

Resolución del conflicto

Como puedes ver, nuestro commit local actual y el commit en la rama remota main comparten un ancestro común, pero se separan, lo que genera el conflicto de fusión que debemos resolver. Para hacerlo, abriremos el archivo README.md en el editor Vim:

vim README.md
Conflictos en Vim

Para resolver este conflicto, se debe ingresar al modo de inserción presionando i, eliminar los marcadores de conflicto y combinar estos cambios de la siguiente manera:

Conflicto resuelto

A continuación, debes presionar la tecla Escape, escribir :wq y presionar la tecla Enter para guardar los cambios y salir de Vim. Ahora, para finalizar la fusión, el archivo README.md debe ser agregado al área de preparación y luego confirmado utilizando los siguientes comandos:

git add README.md
git commit
Note
Nota

Después de ejecutar el comando git commit, se abrirá el editor de texto predeterminado (muy probablemente, Vim). Puedes dejar el mensaje de confirmación predeterminado y salir de Vim de la misma manera que acabamos de hacer, o puedes editar el mensaje y luego salir.

Confirmando archivo fusionado

Finalmente, se puede ejecutar de forma segura el comando git push y verificar que la fusión de tres vías fue exitosa mostrando el árbol de confirmaciones:

git log --graph --oneline --all
Árbol de confirmaciones

Resumen de las acciones realizadas en estos dos capítulos:

  1. Simulación de colaboración realizando cambios tanto localmente como remotamente en el archivo README.md;

  2. Confirmación inicial de un cambio directamente en el repositorio remoto, seguida de un cambio diferente localmente;

  3. Al intentar enviar los cambios locales, surgió un conflicto porque el repositorio remoto tenía nuevas actualizaciones;

  4. Para resolverlo, se descargaron los cambios del repositorio remoto, lo que resultó en un conflicto de fusión;

  5. Resolución manual del conflicto en el archivo README.md utilizando el editor Vim, confirmación de los cambios resueltos y envío exitoso de las actualizaciones finales al repositorio remoto.

question mark

¿Qué comando configura Git para usar merge (no rebase) durante git pull?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 2
some-alt