-
1. Inicio - Sobre el Control de Versiones
-
2. Fundamentos de Git
-
3. Ramificaciones en Git
-
4. Git en el Servidor
- 4.1 Los Protocolos
- 4.2 Configurando Git en un servidor
- 4.3 Generando tu clave pública SSH
- 4.4 Configurando el servidor
- 4.5 El demonio Git
- 4.6 HTTP Inteligente
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Git en un alojamiento externo
- 4.10 Resumen
-
5. Git en entornos distribuidos
-
6. GitHub
-
7. Herramientas de Git
- 7.1 Revisión por selección
- 7.2 Organización interactiva
- 7.3 Guardado rápido y Limpieza
- 7.4 Firmando tu trabajo
- 7.5 Buscando
- 7.6 Reescribiendo la Historia
- 7.7 Reiniciar Desmitificado
- 7.8 Fusión Avanzada
- 7.9 Rerere
- 7.10 Haciendo debug con Git
- 7.11 Submódulos
- 7.12 Agrupaciones
- 7.13 Replace
- 7.14 Almacenamiento de credenciales
- 7.15 Resumen
-
8. Personalización de Git
-
9. Git y Otros Sistemas
- 9.1 Git como Cliente
- 9.2 Migración a Git
- 9.3 Resumen
-
10. Los entresijos internos de Git
-
A1. Apéndice A: Git en otros entornos
- A1.1 Interfaces gráficas
- A1.2 Git en Visual Studio
- A1.3 Git en Eclipse
- A1.4 Git con Bash
- A1.5 Git en Zsh
- A1.6 Git en Powershell
- A1.7 Resumen
-
A2. Apéndice B: Integrando Git en tus Aplicaciones
- A2.1 Git mediante Línea de Comandos
- A2.2 Libgit2
- A2.3 JGit
-
A3. Apéndice C: Comandos de Git
- A3.1 Configuración
- A3.2 Obtener y Crear Proyectos
- A3.3 Seguimiento Básico
- A3.4 Ramificar y Fusionar
- A3.5 Compartir y Actualizar Proyectos
- A3.6 Inspección y Comparación
- A3.7 Depuración
- A3.8 Parcheo
- A3.9 Correo Electrónico
- A3.10 Sistemas Externos
- A3.11 Administración
- A3.12 Comandos de Fontanería
4.7 Git en el Servidor - GitWeb
GitWeb
Ahora que ya tienes acceso básico de lectura/escritura y de solo-lectura a tu proyecto, puedes querer instalar un visualizador web. Git trae un script CGI, denominado GitWeb, que es el que usaremos para este propósito.
Si quieres comprobar cómo podría quedar GitWeb con tu proyecto, Git dispone
de un comando para activar una instancia temporal, si en tu sistema tienes un
servidor web ligero, como por ejemplo lighttpd
o webrick
. En las máquinas
Linux, lighttpd
suele estar habitualmente instalado, por lo que tan solo
has de activarlo lanzando el comando git instaweb
, estando en la carpeta
de tu proyecto. Si tienes una máquina Mac, Leopard trae preinstalado Ruby,
por lo que webrick
puede ser tu mejor apuesta. Para instalar instaweb
disponiendo de un controlador no-lighttpd, puedes lanzarlo con la opción
--httpd
.
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
Esto arranca un servidor HTTPD en el puerto 1234, y luego arranca un
navegador que abre esa página. Es realmente sencillo. Cuando ya hayas terminado
y quieras apagar el servidor, puedes lanzar el mismo comando con la opción --stop
:
$ git instaweb --httpd=webrick --stop
Si quieres disponer permanentemente de un interfaz web para tu equipo o para un
proyecto de código abierto que albergues, necesitarás ajustar el script CGI para ser
servido por tu servidor web habitual. Algunas distribuciones Linux suelen incluir
el paquete gitweb
, y podrás instalarlo a través de las utilidades apt
o yum
;
merece la pena probarlo en primer lugar. Enseguida vamos a revisar el proceso de
instalar GitWeb manualmente. Primero, necesitas el código fuente de Git, que
viene con GitWeb, para generar un script CGI personalizado:
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/opt/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
Fíjate que es necesario indicar la ubicación donde se encuentran los repositorios Git, utilizando la variable GITWEB_PROJECTROOT. A continuación, tienes que preparar Apache para que utilice dicho script. Para ello, puedes añadir un VirtualHost:
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
Recordar una vez más que GitWeb puede servirse desde cualquier servidor web con
capacidades CGI o Perl. Por lo que si prefieres utilizar algún otro, no debería
ser difícil configurarlo. En este momento, deberías poder visitar http://gitserver/
para ver tus repositorios online.