¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Trabaja en una rama y fusiónala (Git)

Después de esta lección: Puedo trabajar en una rama y fusionarla de vuelta.

Lección de 55 min14 comandosLaboratorio de Git y Gitea: aprende clone, commit y push en un servidor Git propio

Dos personas, una lista de precios

Dos empleados de una frutería editan la lista de precios la misma tarde. Uno sube el precio de las naranjas. La otra corrige una falta de ortografía en esa misma línea.

Si comparten una sola carpeta, uno pierde su trabajo. El control de versiones guarda las dos versiones y enseña justo dónde no coinciden.

Al terminar esta lección

Nota

Puedo trabajar en una rama y fusionarla de vuelta.

Palabras clave

PalabraQué significa
Remotocopia compartida de un repositorio en un servidor
Clonarcopiar un repositorio con todo su historial
Ramalínea de trabajo aparte, con sus propios commits
Fusióntraer a una rama el trabajo de otra
Conflictofusión en que dos ramas cambiaron las mismas líneas

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un clon copia todo el historial

Un remoto es la copia compartida de un repositorio, guardada en un servidor como Gitea. Para trabajar con él, lo clonas. Recibes todos los archivos y todos los commits anteriores.

El Gitea del laboratorio tiene un repositorio llamado hello-git. El primer Run lo clona en una carpeta de práctica llamada review. El segundo lee su historial, del más nuevo al más antiguo.

Clona el repositorio en review

Comando
git clone http://gitea:3000/student/hello-git.git review

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lee el historial, una línea por commit

Comando
git -C review --no-pager log --format="%h|%an|%s"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una rama mantiene tu trabajo aparte

Una rama es una línea de commits propia. Cambias archivos en ella y la rama principal sigue como estaba.

Cada commit guarda quién lo hizo. Antes, dile a Git tu nombre y tu correo para esta carpeta. Después crea una rama llamada horario-tarde y cambia una línea en ella.

Esta carpeta es de práctica. No la subirás.

Fija tu nombre para esta carpeta

Comando
git -C review config user.name "Estudiante"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Fija tu correo para esta carpeta

Comando
git -C review config user.email "[email protected]"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crea una rama y cámbiate a ella

Comando
git -C review switch -c horario-tarde

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cambia una línea en la rama

Comando
sed -i 's/Ada Lovelace/Ada Lovelace (anfitriona)/' review/visitors.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Haz commit del cambio en la rama

Comando
git -C review commit -am "Marcar a Ada como anfitriona"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una fusión une dos líneas de trabajo

Cuando dos ramas cambian líneas distintas, Git las fusiona solo. Cuando las dos cambian la misma línea, Git no puede elegir, así que se detiene y te pregunta. Eso es un conflicto.

Vas a provocar uno a propósito. Vuelve a la rama principal. Cambia la misma línea de otra forma. Haz commit. Después fusiona la otra rama.

Vuelve a la rama principal

Comando
git -C review switch main

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cambia la misma línea de otra forma

Comando
sed -i 's/Ada Lovelace/Ada L. Lovelace/' review/visitors.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Haz commit del cambio en main

Comando
git -C review commit -am "Usar las iniciales"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Fusiona la otra rama

Comando
git -C review merge horario-tarde

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lee lo que Git escribió en el archivo

Comando
cat review/visitors.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Tres líneas marcan las dos versiones

Git escribió las dos versiones en el archivo. La línea <<<<<<< HEAD abre la versión de la rama en la que estás. La línea ======= la cierra. La línea >>>>>>> horario-tarde cierra la otra versión.

Para resolverlo, editas el archivo hasta dejar el texto que quieres y borras las tres líneas de marca. Después haces git add del archivo y git commit.

Aquí te detienes y deshaces la fusión.

Deshaz la fusión

Comando
git -C review merge --abort

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Dibuja las dos ramas como un grafo

Comando
git -C review --no-pager log --oneline --graph --all

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que un conflicto significa que el repositorio está roto o que alguien se equivocó. Significa que dos personas cambiaron las mismas líneas. No se pierde nada. Elige el texto correcto, o usa merge --abort para volver a antes de la fusión.

Para ir más lejos

Repite la fusión en review y esta vez resuélvela. Deja la línea como Ada L. Lovelace (anfitriona), borra las tres líneas de marca y haz git add del archivo. Haz commit con --no-edit, que usa el mensaje que propone Git en lugar de abrir un editor.

Dibuja otra vez el grafo y explica en qué se diferencia el commit de fusión de los demás. No subas nada: review sigue siendo de práctica.

Sobre este laboratorio y su código: Laboratorio de Git y Gitea: aprende clone, commit y push en un servidor Git propio

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.