Tutorial de Git - Ramas

Jinku Hu 30 enero 2023
  1. ¿Por qué se necesita branch?
  2. Crear una nueva rama en Git
  3. Eliminar una rama en Git
  4. Crear y comprobar una nueva rama simultáneamente en Git
Tutorial de Git - Ramas

En este tutorial, aprenderemos acerca de una de las características más importantes del sistema de control de versiones de git: la rama.

¿Por qué se necesita branch?

Hasta ahora, sólo hemos estado trabajando en una rama - la rama master. Es la rama por defecto cuando creamos un nuevo repositorio.

En general, la rama master representa la versión estable de tus códigos y está pensada para ser el código que se libera o publica. Por esa razón, no queremos probar nuevas características en el nuevo código de la rama master, sólo en caso de que estropee el código.

Lo que realmente queremos hacer, si queremos añadir una nueva característica a nuestra aplicación, es crear algún entorno aislado para probar esta nueva característica, y si lo terminamos y probamos, podemos fusionar esta nueva característica en la rama master. En lugar de añadir más confirmaciones en la rama master, creamos una nueva rama para que funcione como un entorno aislado y para probar la nueva característica.

Crear una nueva rama en Git

$ git branch test_branch

Lo que estamos haciendo aquí cuando hacemos esta rama test_branch es que estamos copiando el estado del código de la rama master en esta rama para empezar, y luego podemos trabajar en esta rama test_branch.

Puede listar las ramas disponibles en su PC escribiendo,

$ git branch
* master
  test_branch

El test_branch recién creado y la rama master se enumeran aquí.

Ahora todavía está en la rama master aunque acaba de crear la nueva rama. Necesita comprobar la nueva rama para trabajar en ella.

$ git checkout test_branch
Switched to branch 'test_branch'
D       test1_rename.txt

Dice que ahora está cambiada a la rama test_branch, y si hace git branch de nuevo,

$ git branch
  master
* test_branch

Entonces veremos que ahora estamos en la rama test_branch porque el asterisco * está antes de test_branch pero ya no es el master.

Añadamos un texto al fichero test3.txt, como This is the added line in branch test_branch.. Ahora, si hace “estado de la bitácora”, verá que ha cambiado este fichero.

$ git status
On branch test_branch
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   test3.txt

no changes added to commit (use "git add" and/or "git commit -a")

Podríamos confirmar los cambios en esta rama como lo que hemos aprendido en los últimos capítulos.

Lo que hemos hecho es que hemos creado esta nueva rama y hemos hecho algunos cambios que están aislados de la rama master. Los códigos de la rama master se mantienen sin cambios y estables.

Eliminar una rama en Git

Después de que estemos contentos con la nueva característica añadida a la rama, podríamos eliminarla.

$ git checkout master
$ git branch -d test_branch
error: The branch 'test_branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test_branch'.

El parámetro -d después de branch significa que borrará la rama especificada.

Tenemos un error que dice The branch 'test_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D test_branch'.. La d minúscula sólo funciona una vez que hemos fusionado la rama, pero la D mayúscula podría borrar la rama a la fuerza. Introduciremos cómo fusionar la rama en los próximos capítulos, pero por ahora, sólo usaremos la D mayúscula para borrar esta rama.

$ git branch -D test_branch
Deleted branch test_branch (was 7d6bca6).

Si comprueba las ramas ahora, sólo muestra la rama master ahora.

$ git branch
* master

Crear y comprobar una nueva rama simultáneamente en Git

El flujo de trabajo que se muestra arriba crea primero una rama usando git branch y luego hace un checkout de esta rama usando git checkout.

Tiene una forma más rápida de combinar estos dos pasos en uno.

$ git checkout -b new_test_branch
Switched to a new branch 'new_test_branch'
M       test3.txt

Lo que hace es que crea una rama y también la revisa. Así que no tenemos que realizar esos dos pasos por separado.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook