Una rama te deja probar sin romper nada
Una rama en Git es una línea de trabajo paralela que no toca la línea principal. Con ramas puedes probar una idea nueva sin romper lo que ya funciona.
La cafetería de la facultad quiere ensayar una carta de verano. Mientras tanto, la carta de hoy debe seguir intacta para quien la consulte.
Al terminar esta lección
Nota
Puedo trabajar en una rama y cambiar de una rama a otra.
Palabras clave
| Palabra | Qué significa |
|---|---|
| Rama | línea de commits con nombre propio |
| main | nombre de la rama principal del proyecto |
| HEAD | señal de la rama y el commit en que estás ahora |
| Padre | el commit anterior al que se construye uno nuevo |
| Grafo de commits | dibujo de los commits unidos con sus padres |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una rama es un nombre sobre un commit
Una rama no es una carpeta ni una copia. Es un nombre, como main o verano, que apunta a un commit.
Cada commit apunta a su padre, el commit anterior. Si haces un commit nuevo, el nombre de la rama se mueve a él.
Por eso crear una rama es instantáneo: Git no copia ningún archivo.
Crea un repositorio para la carta
git init -q -b main menuSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Fija tu nombre de autor
git -C menu 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 de autor
git -C menu 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.
Escribe la carta de hoy
printf 'tostada 1.50\ncafe 1.20\n' > menu/carta.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Prepara el archivo
git -C menu add carta.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Guarda el primer commit
git -C menu commit -q -m "Crear la carta"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
switch -c crea una rama y entra
El comando git switch -c verano crea la rama verano y te cambia a ella. Lo que hagas desde ese momento queda en verano.
Con git switch main vuelves a la rama principal. Git cambia los archivos de tu carpeta para que coincidan con esa rama.
Mira cómo desaparece y reaparece una línea.
Crea la rama verano y entra
git -C menu switch -c veranoSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Añade una línea a la carta
printf 'horchata 2.20\n' >> menu/carta.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Guarda el commit en verano
git -C menu commit -q -am "Incluir la horchata"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lee la carta en verano
cat menu/carta.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Vuelve a la rama principal
git -C menu switch mainSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lee la carta en main
cat menu/carta.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
El grafo muestra dónde está cada rama
Con git branch ves las ramas locales. La que lleva un asterisco es en la que estás, la que señala HEAD.
Con git log --graph --all ves el grafo de commits de todas las ramas. Aquí verano lleva un commit más que main. Ese commit es el único que tiene verano y main no.
Lista las ramas
git -C menu branchSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Dibuja el grafo con los mensajes
git -C menu --no-pager log --graph --all --format=%sSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lista lo que solo tiene verano
git -C menu --no-pager log verano --not main --format=%sSe 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 una rama es una copia de la carpeta. No lo es: es un nombre que apunta a un commit. Por eso crearla no ocupa espacio, y por eso el archivo cambia al cambiar de rama.