Instalar/configurar un servidor Git + interfaz web
¡Hola a todos! Ya que me encuentro haciendo un proyecto para la Universidad, he decidido esta vez probar Git y dejar a un lado mi querido Subversion. Git es básicamente un sistema de control de versiones, creado por Linus Torvalds, y es usado en proyectos grandes como el Kernel de Linux. Así que he preparado una pequeña guía de instalación y configuración de Git, además de la interfaz web del mismo, lo cual nos permite ver los cambios del proyecto de una manera más amena.
Para este mini proyecto he instalado el servidor en una máquina virtual corriendo Debian 5. El motivo de dejar mi Gentoo por un rato es porque ya es de madrugada y necesitaba que la instalación fuera más rápida; además no me gusta instalar cosas que más adelante no necesitaré: para eso está la virtualización. ¡Basta de rodeos, vamos al grano!
Instalando los paquetes necesarios
Instalaremos Apache2, la base de git y los módulos web de git (y el server de ssh para que los clientes se conecten):
Ahora creamos los directorios /var/cache/git (el repositorio git) y /var/www/git para el gitweb.cgi:
# [ -d "/var/cache/git" ] || sudo mkdir /var/cache/git
En nuestro ejemplo, el directorio raiz del apache es /var/www; ahora debemos crear un archivo de configuración de Apache para el git:
Ponemos lo siguiente adentro:
<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 movemos los archivos gitweb.cgi, .png y .css de git a /var/www/git:
# mv -v /usr/lib/cgi-bin/gitweb.cgi /var/www/git
Debemos ahora hacer un par de cambios en el archivo /etc/gitweb.conf debido a los archivos que movimos:
$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";
Recargamos la configuración del apache:
Iniciando un proyecto en Git
Creamos la carpeta del proyecto…
# mkdir proyecto.git
# cd proyecto.git
Iniciamos un repositorio para nuestro nuevo proyecto y lo configuramos de acuerdo a nuestras necesidades:
# echo “Una breve descripcion del proyecto” > .git/description
# git config –global user.name “Tu nombre”
# git config –global user.email “tu@correo.com”
# git commit -a
Para marcar un repositorio como exportado se usa el archivo git-daemon-export-ok:
# touch .git/git-daemon-export-ok
Para iniciar el servicio de Git que ejecuta un servidor para hacer público nuestro repositorio, ejecutamos el siguiente comando (no debe haber un slash después de la ruta del repositorio):
Ahora el repositorio se encuentra corriendo en el puerto 9418 de nuestro computador. Por último, le daremos permisos de escritura a un usuario que no sea root, de tal manera que con dicho usuario se puedan hacer cambios remotos en el repositorio:
# passwd usuariogit
# chown -Rv usuariogit:usuariogit /var/cache/git/proyecto.git
Acceder al repositorio
Para descargar el repositorio de la manera convencional, basta con ejecutar el comando:
O lo puedes acceder vía web; en mi caso el servidor está en la dirección 192.168.0.5, entonces basta con visitar http://192.168.0.5/git/:

Fuentes y enlaces interesantes
3 Comentarios | deja el tuyo




Muy buena entrada
Nosotros en principio usabamos gitosis [1] para el control de acceso de nuetros repos.
Ahora nos hemos montado una instancia de gitorius [2] que funciona bastante bien
Un saludo y gracias!
[1] http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
[2] http://gitorious.org/gitorious