Gestión de Branches y Tags con Git (II)
Continuo la serie de articulos sobre Git, echa un vistazo a la anterior entrega donde hablamos de creción de repositorios y una pequeña introducción. En esta ocasión indagaré un poco más en el ciclo de vida de nuestro software donde mostraré como crear branches, tags y como Git gestiona todo esto de manera increíble y es realmente lo que lo hace, bajo mi punto de vista, el mejor SCM que he probado.
Internalidades de Git
En el esquema anterior podemos ver como se pueden diferenciar 2 arboles de objetos y nodos distintos, el primero que referenciamos mediante un tag (con una rama descendente única y que contiene dos directorios y un archivo), y el segundo sería exactamente el mismo arbol anterior pero añadiendole un nuevo archivo. Además el segundo es la copia actual en nuestro directorio de trabajo.
Creación de Tags
Entonces y deduciendo un poco la creación de tags en Git es inmediata, basta crear un “puntero” que nos apunte, valga la redundancia, a el commit deseado.
$ git-tag -a nombre-tag -m "Creación de Tag nombre-tag"
Si no proporcionas el parámetro -m, simplemente se abrirá tu editor $EDITOR y podrás proporcionar una descripción a el tag en cuestión. Se pueden hacer múltiples acciones sobre un tag, en el caso anterior se crea un tag sin firmar con GPG pero podemos hacerlo firmado (con el parametro -s) para la posterior identificación de su creador. Para llevar a cabo el firmado se usa el parámetro signingkey de nuestro .gitconfig
[user]
signingkey =
También podemos eliminar un tag con el parámetro -d, y demás. git-tag(1) Por lo tanto la creación de Tags como hemos visto es sencilla y directa, y lo más importante sin crear copias innecesarias de archivos.
Creación de Branches
# creamos el branch a partir de master
$ git branch master <nuevo-branch>
# hacemos que ese branch sea nuestra copia en nuestro directorio de trabajo
$ git checkout <nuevo-branch>
En este gráfico por fin vemos que hemos creado un nuevo commit y se ha creado bajo nuestro branch y no sobre master. Si luego queremos retomar el branch master no tenemos más que hacer un checkout como en el ejemplo anterior y ya sería nuestra copia. En la próxima entrega hablaré de como podemos hacer de distintas formas merges de los branches, y de como Git de nuevo nos facilita la tarea.