Tutorial de Git - Ramas
- ¿Por qué se necesita branch?
- Crear una nueva rama en Git
- Eliminar una rama en Git
- Crear y comprobar una nueva rama simultáneamente en Git
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.
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