UT05 - P02 - PRÁCTICA RAMAS Y CONFLICTOS EN GIT
En esta práctica vamos a utilizar los comando de git, por lo que trabajaremos en la terminal
Parte 1: Conexión a repositorio remoto a través de SSH
Paso 1: Crear una clave SSH
Para autenticarte en GitHub sin tener que introducir tu usuario y contraseña cada vez, genera una clave SSH y añádela a tu cuenta de GitHub.
- En la terminal, ejecuta el siguiente comando para generar una clave SSH:
ssh-keygen -t ed25519 -C "111111@alu.murciaeduca.es"
RECOMENDACIÓN:PON TU CORREO DE MURCIAEDUCA
Este comando genera una clave SSH usando el tipo de encriptación ED25519, que es más seguro que RSA.
Durante el proceso, el sistema te pedirá una ubicación para guardar la clave, podemos pultar 'Enter' para usar el valor predeterminado:
Enter file in which to save the key (/home/usuario/.ssh/id_ed25519):
y una contraseña para mayor seguridad. podemos pultar 'Enter' para olvidar la contraseña.
Enter passphrase for "/home/usuario/.ssh/id_ed25519" (empty for no passphrase):
- Una vez que la clave esté generada, verás una salida similar a esta:
Your identification has been saved in /home/usuario/.ssh/id_ed25519
- Ahora, carga tu clave SSH en el agente de autenticación SSH para gestionar las claves:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Paso 2: Agregar la clave SSH a tu cuenta de GitHub
- Copia la clave pública generada en tu sistema con el siguiente comando:
cat ~/.ssh/id_ed25519.pub
Copia el texto de la clave que aparece en la terminal.
-
Ahora, abre tu navegador y ve a GitHub, luego inicia sesión en tu cuenta.
-
En GitHub, ve a Settings (Configuración) > SSH and GPG keys > New SSH key.
-
Introduce un nombre para la clave (por ejemplo, “P02_github”) en el campo Title y pega la clave en el campo Key. Luego, haz clic en Add SSH key.
Paso 3: Probar la conexión SSH
Para asegurarte de que la clave SSH está correctamente configurada, ejecuta el siguiente comando en la terminal:
ssh -T git@github.com
Si todo está configurado correctamente, verás un mensaje de bienvenida como el siguiente:
Hi TuNombreDeUsuario! You've successfully authenticated, but GitHub does not provide shell access.
Paso 4: Conéctate a tu repositorio vía SSH
En primer lugar, debemos verificar que el repositorio remoto está configurado correctamente usando el siguiente comando:
git remote -v
nos mostrará los repos remotos:
origin https://github.com/usuario/12345667.git (fetch)
origin https://github.com/usuario/12345667.git (push)
Ahora debemos añadir los repositorios SSH para poder conectarnos via terminal utilizando el comando git remote set-url origin seguido de la URL SSH de tu repositorio de GitHub. La URL SSH estará en la página del repositorio de GitHub, bajo el botón Code (asegúrate de elegir la opción "SSH"):
git remote set-url origin git@github.com:TuNombreDeUsuario/NombreDelRepositorio.git
Parte 2: Trabajo con ramas
- Crea una nueva rama:
Desde la terminal, crea y cámbiate a una nueva rama llamada caracteristica1:
git checkout -b caracteristica1
- Haz cambios en la nueva rama:
Entra en la carpetaUT05(créala si no exite) y dentro crea una carpeta llamadaP02. Crea y abre el archivoREADME.mdy añade una línea con el siguiente texto:
Trabajando en la rama caracteristica1.
Guarda los cambios y haz un commit:
git add README.md
git commit -m "Añadida una línea desde caracteristica1"
- Cambia a la rama principal (
main) y haz otros cambios:
Vuelve a la rama main:
git checkout main
Haz el mismo proceso de antes y escribe una línea diferente al archivo README.md, por ejemplo:
Actualizando desde la rama principal.
Haz un commit de estos cambios:
git add README.md
git commit -m "Actualización desde la rama principal"
Parte 3: Fusión y resolución de conflictos
- Comprueba en que rama estas
git status
Deberias estar en la rama main. Si no es así, cambia a esa rama:
git checkout main
-
Intenta fusionar
caracteristica1conmain:- Vuelve a la rama principal y fusiona
caracteristica1:git merge caracteristica1
- Vuelve a la rama principal y fusiona
-
Resuelve el conflicto:
- La fusión generará un conflicto porque ambas ramas modificaron la misma línea en
README.md. - Abre el archivo
README.mden tu editor de texto. - Verás algo como esto:
- La fusión generará un conflicto porque ambas ramas modificaron la misma línea en
<<<<<<< HEAD
Actualizando desde la rama principal.
=======
Trabajando en la rama caracteristica1.
>>>>>>> caracteristica1
La parte supuerior indica lo que hay en remoto y la parte infrerior indica los cambios en tu rama. Ahora decide cómo combinar los cambios. Por ejemplo puedes dejar el archivo con el siguiente contenido:
Actualizando desde la rama principal y trabajando en la rama caracteristica1.
- Guarda el archivo y finaliza la resolución del conflicto:
git add README.md
git commit -m "Resuelto conflicto entre main y caracteristica1"
Finalmente, envía los cambios al repositorio remoto en GitHub:
git push
NOTA: La primera vez que uses esrte comando, es posible que necesites especificar la rama (
-u origin mainen este caso). Después, sologit pushbastará.