Git est un logiciel de gestion de versions décentralisé. C’est un logiciel libre créé par Linus Torvalds, le créateur du noyau Linux, et distribué sous la GNU GPL version 2.
L’objectif de ce tutoriel est de mettre en place rapidement et simplement un serveur git décentralisé. Nous aurons la possibilité de :
Enfin nous verrons l’intégration de notre serveur avec redmine.
C’est la partie la plus simple de ce tuto :
aptitude install git-core gitolite gitweb
L’administration (attribution des droits, création des dépôts ….) se fait entièrement à distance. Il n’est plus besoin d’intervenir sur le serveur en lui même. C’est la magie de gitosis qui permet d’administrer le serveur git via un … dépôt git.
L’administrateur sera donc l’utilisateur dont on a utilisé la clé publique pour initialiser gitosis.
git clone git@votreserveur:gitosis-admin.git && cd gitosis-admin
cela nous donne l’arborescence suivante :
`-- gitosis-admin |-- gitosis.conf `-- keydir `-- user@host.pub
le répertoire keydir recevra les clé publique des utilisateurs autorisés a accéder aux dépôts le fichier gitosis.conf servira à configurer les acl et les dépots.
Cela est redoutablement simple !
[repo monprojet] description = description du projet owner = Propriétaire du dépot (informatif) <code> * Ensuite nous définissons les droits de l'utilisateur sur ce dépôt [group monprojet] writable = monprojet members = user@host
writable donne les droits d’écriture sur le dépôt monprojet
members est une liste d’utilisateurs séparés par des espaces (doit correspondre au fichier clé publique placé précédemment dans le répertoire keydir sans l’extension .pub)
Voila notre configuration est terminée. Il ne reste plus qu’a ajouter le fichier clé publique au dépot local
git add keydir/user@host.pub git commit -am "Ajout du dépôt monprojet et autorisations pour user@host"
Enfin on “pousse” la configuration vers le serveur git
git push
Pour l’administrateur c’est tout ! Voyons maintenant comment l’utilisateur va créer son dépot.
L’utilisateur à donc fait sa demande à l’administrateur pour pouvoir héberger son dépôt sur le serveur git. Il doit maintenant initialiser son dépôt sur son poste de travail
mkdir monprojet cd monprojet git init
Il faut maintenant déclarer le dépôt distant
git remote add origin git@monserveur:monprojet.git
Enfin on pousse notre dépot vers le serveur
git push origin master:refs/heads/master