Contenido del Curso
Fundamentos de GitHub
Fundamentos de GitHub
Sincronización de los Repositorios
Como se mencionó en el capítulo anterior, necesitamos sincronizar nuestra rama local con el repositorio remoto. Para ello, debemos ejecutar el comando git pull
:
Cuando ejecutamos el comando git pull
, Git obtuvo actualizaciones pero notó que nuestras ramas local y remota se han divergido, lo que significa que hay cambios en ambas ramas que deben ser reconciliados. Git no pudo continuar porque necesita saber cómo manejar estas diferencias, así que configuremos la opción merge y ejecutemos nuevamente el comando git pull
:
La operación rebase se tratará más adelante en este curso.
Git intentó fusionar automáticamente los cambios locales y remotos en README.md
, pero encontró un conflicto de fusión. Observemos el árbol de commits, que indica dónde ocurrió la divergencia y los conflictos:
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:
Para resolver este conflicto, podemos entrar en modo de inserción presionando i
, eliminar los marcadores de conflicto y combinar estos cambios de la siguiente manera:
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 añadido al área de preparación y luego confirmado utilizando los comandos respectivos:
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.
Finalmente, podemos ejecutar el comando git push
de forma segura y verificar que la fusión de tres vías fue exitosa mostrando el árbol de confirmaciones:
Desglosemos lo que hicimos en estos dos capítulos:
Simulamos la colaboración realizando cambios tanto localmente como remotamente en el archivo
README.md
;Primero confirmamos un cambio directamente en el repositorio remoto, luego hicimos un cambio diferente localmente;
Cuando intentamos enviar nuestros cambios locales, encontramos un conflicto porque el repositorio remoto tenía nuevas actualizaciones;
Para resolver esto, obtuvimos los cambios del repositorio remoto, lo que resultó en un conflicto de fusión;
Luego resolvimos manualmente el conflicto en el archivo
README.md
usando el editor Vim, confirmamos los cambios resueltos y enviamos exitosamente las actualizaciones finales al repositorio remoto.
¡Gracias por tus comentarios!