Ce tutoriel décrit comment installer un serveur git sur son serveur : git est un logiciel libre de gestion de versions décentralisée.

Attention ! Ce tutoriel a été écrit pour l’installation d’un serveur git avec gitosis ; dans les versions plus récentes de Ubuntu serveur (12.04 LTS par exemple), gitosis a été remplacé par gitolite, voir ce post (à la fin) pour plus de détails sur l’installation de gitolite, qui est assez similaire à celle de gitosis.

Initialisation de la configuration du serveur git

Dans un premier temps, on installe les packages nécessaires :

apt-get install git-core gitosis

En utilisant la clé ssh publique tuxette.pub permettant la connexion au server, initialiser le serveur git :

sudo -H -u gitosis gitosis-init < tuxette.pub

Le serveur répond :

Initialized empty Git repository in /srv/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /srv/gitosis/repositories/gitosis-admin.git/

Création d’un projet test

Sur votre ordinateur local, après avoir chargé votre clé privée (correspondant à la clé publique nath.pub), récupérer le dépôt administrateur de git

git clone gitosis@server.domain-name.org:gitosis-admin.git

server.domain-name.org doit être remplacé par le nom de votre serveur.

Dans le répertoire gitosis-admin, éditer le fichier gitosis.conf qui est initialement de cette forme

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = keyfilename

keyfilename correspond au nom donné à votre clé (ne pas changer ce nom ni le fichier correspondant dans keydir sous peine de se voir banni du serveur. Ajouter un nouveau projet :

[gitosis]

[group team]
writable = testproject
members = keyfilename

[group gitosis-admin]
writable = gitosis-admin
members = keyfilename

puis mettre à jour les informations sur le dépôt admin de git :

git commit -a
git push

Sur votre ordinateur local, créez quelque part un répertoire testproject dans lequel vous placez un fichier test a_file.txt avant d’initialiser le dépôt git et de l’installer sur le serveur :

mkdir testproject
cd testproject
nano a_file.txt
git init
git add a_file.txt
git commit -a
git remote add origin gitosis@server.domain-name.org:testproject.git
git push origin master

Pour ajouter un nouvel utilisateur au projet testproject, de clé ssh publique tux.pub, placer le fichier tux.pub dans le répertoire gitosis-admin/keydir puis

git add keydir/tux.pub
git commit -a
git push

puis modifier le projet testproject dans le fichier gitconfig par :

[group team]
writable = testproject
members = keyfilename tux

(ne pas oublier de pousser les modifications sur le serveur).

Utilisation du dépôt git par l’utilisateur tux

Pour pouvoir récupérer le dépôt git, l’utilisateur tux doit posséder un client git

apt-get install git

pour ubuntu ou bien ce lien pour Mac OS X (voir ce post pour l’installation sur une version ancienne de Mac OS X) et ce lien pour Windows. Une fois installé, les commandes suivantes permettent d’initialiser la configuration :

git config --global user.name "Tux Dude"
git config --global user.email tux-email@whatnot.com

Enfin, pour configurer l’éditeur de test par défaut des messages de commit (j’utilise nano : basique mais rapide), utiliser la commande :

git config --global core.editor nano

Enfin, après avoir chargé sa clé privée, il peut récupérer le dépot git :

git clone gitosis@server.domain-name.org:testproject.git

En savoir plus : Plus d’information sur les manipulations de fichiers sur un dépôt git sur ce lien.