miércoles, 7 de julio de 2010

Cómo utilizar Git sobre Hostmonster o Bluehost

Git es un Sistema para Controlar Versiones (SCV) inventado por Linus Torvalds. Fue diseñado considerando el proceso de desarrollo de Linux y hoy día es uno de los SCV más utilizados.

Lo que hace a Git tan atractivo es la capacidad de manejar versiones de forma distribuida bajo un enfoque KISS (Keep it simple, stupid!). Por ejemplo, Git es perfecto para un esquema típico de desarrollo de software libre, donde se crean unidades de desarrollo con líderes que deben velar porque todo lo desarrollado por sus supervisados esté de la mejor forma posible. Luego, estos líderes son los encargados de subir sus códigos a repositorios de datos con mayor visibilidad, para que sus líderes validen el trabajo y así sucesivamente.

Además de lo mencionado anteriormente, Git brinda un manejo excepcional de branches y tags!!

El objetivo de este artículo es explicar cómo pude trabajar con un repositorio Git en Hostmonster (hostmonster.com).

Primero: Instalando Git

Debe instalar Git en su máquina para poderlo utilizar, hacerlo, es muy sencillo:

# aptitude install git-core

Luego, lo que puede resultar un tanto problemático es instalar Git en Hostmonster donde por supuesto no tenemos permiso para instalar paquetes. Entonces la idea es descargar los fuentes de la aplicación, compilarlos e incluir la ruta bin del compilado en la variable de entorno PATH. En el siguiente enlace puede conseguir las instrucciones detalladas de cómo hacer esto. Lo único que cambié, fue el paquete Git, descargué la última versión estable (para la fecha de escritura de este artículo 1.7.0).

Segundo: Configurando el repositorio

Debe conectarse a su servidor de Hostmonster (para lo cual debe tener acceso SSH), crear la carpeta donde almacenará la información e iniciar el repo Git crudo (desnudo - bare). Para efectos de este ejemplo llamaré a mi sitio git-example.com.


$ ssh git@git-example.com
$ mkdir -p repo/myproj.git
$ cd repo/myproj.git
$ git --bare init


Luego, en su máquina deberá crear la carpeta donde ubicará los fuentes del proyecto, iniciar el repo Git, agregar al menos un archivo (para generar el branch master), configurar las variables uploadpack y receivepack (que el Git remoto utilizará para hacer push y pull), configurar el origen remoto para su repo y realizar el primer push.

Si a este punto tiene alguna duda acerca del funcionamiento de Git, de las operaciones push y pull le aconsejo leer del siguiente enlace.


$ mkdir -p projects/myproj
$ cd projects/myproj
$ git init
$ echo "README" > README
$ git add README
$ git commit -a -m "Initial commit"
$ git config remote.origin.uploadpack '$RUTA_REMOTA_ABSOLUTA_GIT/bin/git-upload-pack'
$ git config remote.origin.receivepack '$RUTA_REMOTA_ABSOLUTA_GIT/bin/git-receive-pack'
$ git remote add origin ssh://git@git-example.com/home/git/repo/myproj.git
$ git push origin master


De aquí en adelante trabaje tranquilamente y cada vez que desee hacer un commit repita los pasos:


$ git add *
$ git commit -a -m "Commit description"
$ git push


El resto de los usuarios podrá clonar el repo de la siguiente forma:


$ git clone -u '$RUTA_REMOTA_ABSOLUTA_GIT/bin/git-upload-pack' ssh://git@git-example.com/home/git/repo/myproj.git

No hay comentarios:

Publicar un comentario