11 - Creación de ramas

Inmediatamente creamos un proyecto se crea por defecto una rama (branch) y Git le da el nombre por defecto 'master'.

Cada vez que confirmamos archivos en Git (commit) se modifica ésta rama 'master'.

Para ver que es muy común trabajar con ramas podemos visitar distintos proyectos en GitHub y comprobar que dichos proyectos administran más ramas que la 'master', por ejemplo el código fuente de Git al día de hoy tenemos 7 ramas, puede variar en el tiempo ya que se pueden borrar o agregar más ramas:

branch en el proyecto Git

Git promueve que cada vez que queremos añadir una funcionalidad a nuestra aplicación o queremos eliminar un error, debemos evitar trabajar sobre la rama 'master', sino debemos crear una nueva rama donde procedemos a implementar los algoritmos respectivos y posteriormente la fusionamos con la rama 'master'.

Una de las ventajas de Git con respecto a otros sistemas de control de versiones es que la administración de ramas es muy rápida y requiere muy poco espacio.

Ejemplo de creación y administración de una rama

Vamos a crear una carpeta llamada 'proyecto2', seguidamente procederemos a crear el repositorio con el comando 'init', también procederemos a crear 3 archivos y los confirmaremos 'commit':

git init git add git commit

Por ejemplo ahora queremos implementar la funcionalidad de login a nuestro sitio web, en lugar de modificar la rama 'master', procedemos a crear una rama llamada 'login':

git branch login

Ahora podemos ver todas las ramas ejecutando el comando branch sin parámetros:

git branch

git branch git branch login

Como podemos comprobar tenemos dos ramas: 'master' y 'login'. Con un asterisco se muestra en la que estamos posicionados, cualquier cambio que hagamos se hará sobre dicha rama.

Para cambiarnos de rama debemos ejecutar el comando checkout y el nombre de la rama:

git checkout login

Cuando activamos la otra rama podemos comprobar con checkout que la rama activa es la de login:

git checkout

Creamos ahora en la rama login 2 archivos y los confirmamos:

git add login1.html
git add login2.html
git commit -m "Agregamos los archivos de login"

commit en otra rama

Regresemos a la rama 'master':

git checkout master

Cuando cambiamos de rama podemos comprobar como el editor de texto nos deja de mostrar los dos archivos creados en la rama 'login':

regresar a la rama master

Fusionar la rama login a la rama master

Si ya tenemos implementado la funcionalidad de login, podemos fusionar la rama 'login' a la rama 'master' mediante el comando 'merge':

git merge login

Después de ejecutar el comando 'merge' podemos ver como todos los archivos creados y/o modificados en la rama 'login' se agregan a la rama 'master':

comando merge

Cuando fusionamos una rama, la misma no se borra, podemos comprobar que sigue existiendo ejecutando el comando checkout:

git branch

Si queremos borrar definitivamente una rama lo debemos hacer con el comando:

git branch -d login

borrar rama