Instalar GIT en Ubuntu, sistema de control de versiones

Buenas, hasta ahora siempre he trabajado en empresas pequeñas donde la programación en ciertos aspectos era un poco de andar por casa. Sobre todo lo que se refiere al control de versiones. Este se hacía de una manera muy manual, con un excel donde apuntábamos lo que íbamos cambiando y avisándonos unos a otros cuando trabajábamos en un archivo de un proyecto compartido entre varios. Esta forma de trabajar siempre hará que cometamos errores debido a la falta de documentación en el excel o por la necesidad de modificar archivos por tareas de mantenimiento pero que se están modificando para un desarrollo.



Hasta ahora nunca había trabajado con ningún control de versiones, pero llevaba bastante tiempo escuchando hablar de ellos, sobre todo GIT. Así que ahora me he decidido a montarme mi propio servidor personal git.


Git ha sido desarrollado ni más ni menos que por el propio Linus Torvalds, y es utilizado para el nucleo de Linux entre otros muchos proyectos importantes. El desarrollador que va a trabajar en un determinado proyecto descarga una copia a su pc del proyecto, realiza los cambios necesarios y puede enviar después sus cambios. Otro de los aspectos importantes es que podremos crear una rama de nuestro proyecto, por lo que podremos hacer varias variantes de un desarrollo y escoger cual es la que queremos enviar a nuestro repositorio. Hoy veremos como instalarlo y poco a poco iremos viendo los comandos necesarios para trabajar con git.


Empezamos instalando los paquetes necesarios, entre los que tenemos 2 de git: git-core y gitweb (uno es el núcleo y otro la interfaz web), otro para el server SSH y apache. Con el siguiente comando instalaremos todo.


# aptitude install apache2 git-core gitweb openssh-server


Ahora debemos crear un directorio para el repositorio de git /var/cache/git y otro para la interfaz web gitweb.cgi /var/www/git


# mkdir /var/www/git
# [ -d “/var/cache/git” ] || sudo mkdir /var/cache/git


Ahora vamos a crear un archivo de configuración en Apache para nuestro servidor git.


# nano /etc/apache2/conf.d/git


Y escribimos la siguiente configuración dentro de  este archivo:


<Directory /var/www/git>
Allow from all
AllowOverride all
Order allow,deny
Options ExecCGI
<Files gitweb.cgi>
SetHandler cgi-script
</Files>
</Directory>
DirectoryIndex gitweb.cgi
SetEnv  GITWEB_CONFIG  /etc/gitweb.conf

Ahora debemos mover los archivos gitweb.cgi, .css y .png de git a /var/ww/git

# mv -v /usr/share/gitweb/* /var/www/git
# mv -v /usr/lib/cgi-bin/gitweb.cgi /var/www/git


Y debemos hacer algún cambio en el archivo de configuración debido a los archivos movidos en /etc/gitweb.conf, abrimos el archivo con el editor nano y modificamos el archivo así:


# nano /etc/gitweb.conf


$projectroot = '/var/cache/git/';
$git_temp = "/tmp";
#$home_link = $my_uri || "/";
$home_text = "indextext.html";
$projects_list = $projectroot;
$stylesheet = "/git/gitweb.css";
$logo = "/git/git-logo.png";
$favicon = "/git/git-favicon.png";


Por último volvemos a recargar la configuración de Apache:


# /etc/init.d/apache2 reload


Ya está montado nuestro control de versiones git y la interfaz web, podemos comprobarlo llamando a la siguiente dirección desde nuestro navegador: http://localhost/cgi

Ahora vamos a crear un proyecto.


# cd /var/cache/git/
# mkdir proyecto.git
# cd proyecto.git

Iniciamos un nuevo repositorio y lo configuramos. Dentro de la carpeta de nuestro proyecto se creará la carpeta .git que es la que contendrá información para git.


# git init
# echo “descripción del proyecto” > .git/description
# git config -global user.name “Tu nombre”
# git config -global user.email “tu@correo.com”
# git commit -a


Si ahora volvemos a llamar la interfaz web veremos que aparece el repositorio que hemos creado. Ahora para marcar un repositorio como exportado se utiliza el archivo git-daemon-export-ok


# touch .git/git-daemon-export-ok


Ahora iniciaremos un servicio que hará publico nuestro repositorio.


# git daemon --base-path=/var/cache/git --detach --syslog --export-all


Ahora nuestro repositorio está en el puerto 9418, y le daremos permisos a un usuario diferente de root.


# adduser usuariogit
# passwd usuariogit
# chown -Rv usuariogit:usuariogit /var/cache/git/proyecto.git


Por último, para descargar el repositorio basta con la siguiente instrucción:


# git clone git://ip_servidor/proyecto.git proyecto


Ahora ya tenemos una copia en nuestro pc del proyecto con el que podremos trabajar para luego enviar los cambios al repositorio. La semana que viene veremos en más detalle como trabajar con git.

Comments are closed.