miércoles, 1 de mayo de 2013

Git al rescate de los programadores

Buenas noches, después de un tiempo sin escribir, aquí les traigo una nueva entrada.

En esta oportunidad, quiero tratar sobre el tema de control de versiones. Para los programadores, siempre es importante, tener respaldo constante del código que están desarrollando, y mas aun, tener respaldos sobre versiones de código en el cual estaban seguros que lo que estaba funcionaba bien. Bueno, esa es la razón de ser de los queridos programas que nos permiten el control de versiones, guardar las diferencias, entre el código antiguo y el nuevo, de forma tal, que en cualquier momento poder revisarla y regresar a la misma.

Existen varios programas que nos permiten eso, entre los mas sonados tenemos a subversion y git. En esta oportunidad hablaremos sobre git.

Para instalar git en nuestro querido linux, basta con ejecutar 

aptitude install git git-core

Una vez instalados los paquetes, nos ubicamos en el directorio donde queremos que se haga el control de versiones y se ejecuta: 

git init

Con esta instrucción, lo que se esta haciendo es crear el repositorio en blanco del proyecto que se va a manejar.

Luego, se ejecuta 

git add .

Con esto le estamos diciendo a git que agregue a todos los archivos y directorios ubicados en la posición actual, al repositorio.

Y con

git commit -a

Le indicamos, que ahora guarde en el repositorio todos los cambios que se han ocurrido entre lo que esta en el repositorio y lo que existe actualmente en los archivos. La "-a" me posiciona en mi editor para que escriba un comentario sobre lo que estoy almacenando.

Otro comando muy usado, es 

git status

esto permite ver si existe alguna diferencia entre lo que esta en los repositorios y lo que esta actualmente disponible.

Otros comandos usados, pero en esta oportunidad, para configurar a git

git config --global user.name "TU NOMBRE"
git config --global user.email tuemail@provedor.algo
git config --global core.editor tu_editor (vi, vim, emacs, nano, etc) 

Y siguiendo con las configuraciones, este que te voy a mostrar te permite ver como va tu configuración hasta ahora

git config --list

Como ultimo punto, si no desean incluir en el control de versiones ciertos archivos o directorios, ejemplo: txt, pdf, archivos de claves, etc., la solución es crear un archivo de nombre .gitignore (este debe estar en el directorio que estamos manejando). En el vamos a colocar, por ejemplo:

*/logs/*
*/cache/*
*.txt
*.sql

Lo anterior hace, que se no se maneje en el control de versiones el contenido que se encuentra en el directorio logs y cache (pero el directorio si se crea), tampoco son tomados por el controlador de versiones los archivos terminados en txt y sql.

Algo mas que es de mucha ayuda e importancia, es el manejo de ramificaciones, es decir, por defecto se crea y se trabaja en la rama master ( esto lo podemos saber ejecutando el comando git branch), pero en caso de que queramos una nueva rama, digamos para hacer pruebas, la creamos con el comando git brach prueba, con esto hemos creado la rama prueba. 

Ahora para cambiarse a esa rama ejecutamos el comando git checkout prueba. Todas las modificaciones que hagamos ahora en los archivos que están bajo el control de versiones, serán visibles solo en la rama prueba. Digamos que el código que estábamos probando funciona bien y esta estable, bueno podemos pasarlo a la rama master ejecutando

 git checkout master
 git merge prueba




En caso de que se quiera hacer un roolback:

 git log (obtenemos el id del commit)
 git reset --hard id_commit



En caso de que necesiten mas información, les recomiendo la pagina
http://git-scm.com/
http://www.maefloresta.com/portal/es/git.es
tienen mucha información.

No hay comentarios:

Publicar un comentario