BLOG
Mise en place d’un serveur proposant des repositories git via HTTP
Pour cet article, je suppose que vous avez un serveur nommé git.dev, et qu’il est installé sous debian. Nous allons voir comment mettre en place des repositories git accéssible via http par l’adresse http://git.dev/repositories
Mise en place du repository git
Pour commencer, installons git et apache
$ apt-get install git apache2
On créé un répertoire pour stocker repositories gits, que nous rendrons accéssibles via apache (pour la démo est va les mettre dans des répertoire accéssible de base par apache:
$ mkdir /var/www/git/repositories
On créé un premier dépot:
$ cd /var/www/git/repositories $ mkdir myproject.git $ cd myproject.git $ git --bare init $ git update-server-info $ cd /var/www/git/repositories $ chown -R www-data.www-data .
Configuration d’apache
Ajout du module dav à apache. Le module dav prends en charge l’écrire sur le serveur de fichier via http:
$ a2enmod dav dav_fs $ /etc/init.d/apache restart
Mise en place d’un vhost pour l’accès au repositories git:
ServerName git.dev ServerAdmin DocumentRoot /var/www/git/ Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all SetEnv GIT_PROJECT_ROOT /var/www/git/ SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias / /usr/lib/git-core/git-http-backend/ AliasMatch ^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1 AliasMatch ^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1 ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /usr/lib/git-core/git-http-backend/$1 DAV on Options +ExecCGI Indexes FollowSymLinks MultiViews Order allow,deny allow from all
Et voilà votre git est accessible via: http://git.dev/repositories/myproject.git
Maintenant il ne vous reste plus qu’à cloner votre projet:
$ git clone http://git.dev/repositories/myproject.git
Et voilà vous pouvez travailler à plusieurs sans riquer de perdre des données !!!