Gestión de Branches y Tags con Git (II)

13 June, 2008 | Comentarios (1)

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

Git internamente gestiona los distintos commits en forma de arbol, donde cada “hoja”, que el llama blob son los distintos archivos en un instante determinado y los “nodos”, que llama tree son los distintos directorios. Siguiendo este esquema la gestión del repositorio se simplifica mucho.
Esquema del arbol de repositorio de GitEn 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

  1. [user]
  2.     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.

Leer más →

Archivado en... Programación, Truquitos, Vida virtual URI

Control de versiones con Git (I)

4 June, 2008 | Comentarios (1)

En el ciclo de vida de un producto software siempre se debe contar con herramientas que nos faciliten la ayuda a los desarrolladores, y en ese sentido los sistemas de control de versiones, como Subversion, CVS o Mercurial, son de utilización obligatoria aunque desarrolle sólo una persona.
En este post relataré mi experiencia con un sistema de control de versiones que lleva ya algun tiempo haciendo ruido en internet y que ciertamente, adelanto ahora mismo, supone un paso adelante en los sistemas de control de versiones y en particular en su gestión de branches.
Yo venía utilizando Subversion y como todos veía muy pobre su sistema de gestión de tags y branches y el intercambio entre ellos, obligandote a mantener varias copias de todo un proyecto para cada branch y para tag.
Git a diferencia de otros SCMs permite commits locales y remotos, no hace falta conexión permanente con un repositorio central, porque simplemente ese repositorio no existe, en cambio la funcionalidad del mismo se distribuye en distintos equipos sin una jerarquía especial.
Si bien no existe un servidor central, si tenemos la posibilidad de definir varios repositorios remotos desde los cuales sincronizar todos los commits entre distintas personas, para tal ejemplo tenemos github.com que ofrece servicio gratuito para proyectos de fuente abierta o servicios de pago para repositorios privados.

Uso de Git

El primer paso despues de instalar Git es configurarlo para identificarnos, para eso con un simple
$ git config --global user.name "Tu nombre"
$ git config --global user.email "direccion@dominio.tld"

configuramos nuestro nombre. Para ver más parametros de configuración pasaros por aquí git-config(1).

Para configurar un poco el comportamiento de git y sus diferentes acciones podeis editar el archivo general ~/.gitconfig que teneis en vuestro directorio home:

  1. [user]
  2.     name = James Bowes
  3.     email = MY_EMAIL
  4.  
  5. [alias]
  6.     ci = commit -a
  7.     co = checkout
  8.     st = status -a
  9.     praise = blame
  10.  
  11. [apply]
  12.     whitespace = strip
  13.  
  14. [diff]
  15.     color = auto
  16.     rename = copy
  17.  
  18. [pager]
  19.     color = true
  20.  
  21. [status]
  22.     color = auto

Para la creación de un repositorio git simlemente tenemos que ejecutar en consola el siguiente comando dentro de la carpeta que queremos controlar:
$mkdir repositorio; cd repositorio;
$ git init

Leer más →

Archivado en... Programación, Software URI





: