La gestión de la configuración es uno de los temas más importantes dentro del mundo del desarrollo de software. Por el año 1970 se comenzaron a usar los VCS (Version Control System) que mejoraron la ayuda a desarrolladores permitiendo tener un control sobre diferentes versiones del código en el que trabajaban. Por aquella época se usaban bastos mainframes para realizar esa tarea de forma CENTRALIZADA.

Años más tarde se lanzó CVS (Concurrent Version System) desarrollado por GNU que dió paso a Subversion (SVN) uno de los VCS más usados hoy en día.

Pero una nueva corriente de DVCS (Distributed Version Control System) está pegando con mucha fuerza desde el 2004. Hoy tenemos una oferta muy amplia de DVCS: Monotone, Darcs, Bazaar, Mercurial y GIT desarrollado por Linus Torvalds y que sin duda es mi preferido.

De GIT destacaría su rápided y facilidad a la hora de trabajar con Branches y solucionar problemas. El concepto de Branch difiere del de SVN. En SVN erán ramas estables y finales (esas que no se deben tocar :P ) mientras que GIT las trata como puntos de inflexión en las que se separa de la rama principal (master branch). Poniendo un ejemplo: Supongamos un escenario en el que estamos desarrollando una aplicación para crear una ToDo-LiST y queremos desarrollar dos nuevas funcionalidades independientes (FA y FB) y tenemos dos desarrolladores (D1 y D2).

D1 se crea una branch nueva llamada FA y comienza a trabajar en ella a su bola.

D2 continua su desarrollo en la rama principal.

Cuando D1 acabe puede empujarle (push) los cambios a la principal y fusionar todo de nuevo (merge).

Si alguien difiere de esto por favor que me corriga ;)

INSTALACIÓN EN UBUNTU

sudo aptitude install git gitk

CREACIÓN DE CERO DE UN REPO

cd ~/foo/bar

git init

git add .

CLONACIÓN DE UN REPO EXISTENTE

git clone URI

STATUS Y DIFFERENCIAS

git status

git diff

MANEJO DE BRANCHES

git branch foo #Crea la rama foo

git checkout foo #Cambia a la rama foo

PUBLICACIÓN Y ACTUALIZACIÓN

git commit -a -m “Mensaje” #Con -a no hace falta el git add

git fetch #Actualiza

ERRORES

git fsck #Comprueba si hay errores y limpia

Para añadir patrones o ficheros a la zona ignore solo hay que crear un fichero llamado .gitingore en el que podremos introducir los ficheros que no deseamos incluir en el repositorio.

./gitignore

*.log

db/schema.rb

*.session

Puede que halla metido la pata en algún punto, pero espero que os sirva de ayuda, para empezar. Para los maqueros la instalación se puede hacer con los Ports:

sudo port install git-core

Me gustaría que comentaseis vuestras experiencia con GIT u otro DVCS.

One Response to “GIT en Ubuntu 8.04 Hardy Heron”

  1. Alex says:

    Your blog is interesting!

    Keep up the good work!

Leave a Reply