Configurer un dépôt public
En supposant que vous ayez votre dépôt personnel dans le dossier ~/proj, nous allons créer un nouveau clone de ce dépôt et prévenir git-daemon qu'il est destiné à être public :
$ git clone --bare ~/proj proj.git
$ touch proj.git/git-daemon-export-ok
Le dossier proj.git obtenu contient un dépôt git "nu" (bare) qui contient juste le contenu du répertoire ".git", sans aucun autre fichier récupéré autour de ce dossier.
Ensuite, copiez proj.git sur le serveur où vous allez héberger votre dépôt public. Vous pouvez utiliser scp, rsync ou ce qui vous convient le plus.
Exporter un dépôt git avec le protocole git
C'est la méthode la plus utilisée.
Si quelqu'un d'autre s'occupe de l'administration de votre serveur, il devrait vous indiquer dans quel répertoire mettre votre dépôt et sur quelle adresse git:// vous pourrez le récupérer.
Sinon, vous devez démarrer git daemon; il ecoutera le port 9418. Par défaut, il autorise les accès à tout ce qui ressemble à un répertoire git et qui contient le fichier magique git-daemon-export-ok. Si vous ajoutez le chemin de plusieurs dossiers en options de git-daemon, il restreindra les exportations en ne tenant compte que de ces dossiers.
Vous pouvez aussi lancer git-daemon comme service inetd; regardez le manuel de git daemon; (man git-daemon), particulièrement les exemples, pour plus d'informations.
Exporter un dépôt git par http
Le protocole git est plus performant et plus fiable, mais sur un hébergeur qui a déjà configuré son serveur web, l'exportation http peut être une solution plus simple à mettre en place.
Tout ce que vous devez faire est de placer le dépôt git (bare) que vous venez de créer dans un dossier qui est accessible depuis le serveur web et faire quelques ajustements pour donner au client web les quelques informations additionnelles dont il a besoin :
$ mv proj.git /home/you/public_html/proj.git
$ cd proj.git
$ git --bare update-server-info
$ chmod a+x hooks/post-update
Pour plus d'explications sur ces 2 dernières lignes, regardez la documentation de git update-server-info et githooks.
Il vous suffit ensuite de diffuser l'adresse de proj.git aux autres développeurs. Tout le monde aura la possibilité de cloner ou de récupérer (pull) les changements du projet depuis cette adresse, avec la commande suivante par exemple:
$ git clone http://yourserver.com/~you/proj.git