Utilisation du client git et export en svn-style

En guise de mémo, voila les commandes à passer pour la gestion de projets versionnés avec Git.

Installation

apt-get install git

Création du dépôt général

git init --bare projects
cd projects

Explications sur l’option –bare ici

Configuration du dépôt général

git config --global user.name "John Doe"
git config --global user.email john@doe.com
git config --global core.editor vim
git config --global color.ui auto
git config --global color.diff auto
git config --global color.status
git config --global color.branch
git config --list

Création d’un projet spécifique

cd ..
git init myproject
cd myproject/

* On y rajoute un fichier

echo 'bam' > testfile
git add .

* On défini le dépôt général

git remote add projects ../projects.git/

* Listing du dépôt remote

git remote -v

* Et on commit

git commit -m "first import"
git push projects master

Export du dépôt général

cd ../projects
git archive --format zip --output /home/user/projects-git-backup.zip master

Gitolite le git facile

Le choix d’un système de gestion de versions est toujours compliqué.

Je me suis frotté a Git et au final j’ai adopté Gitolite qui permet de faire un serveur git central privé qui a une granularité fine dans les droits.

* on installe (12.04 lts)

apt-get install git-core gitolite

* on attribue un user bien locké

sudo adduser \
  --system \
  --shell /bin/sh \
  --gecos 'git version control' \
  --group \
  --disabled-password \
  --home /home/gitolite \
  gitolite

* On modifie le path

su git
echo "PATH=$HOME/bin:$PATH" > ~/.bashrc
cd

* Il faut declarer un poste admin (avec ssh+rsa) sur le poste admin

ssh-keygen -t dsa
cat .ssh/id_dsa.pub

* retourner sur le serveur et

vim admin.pub

* Coller le contenu de la clé sur le serveur

vim admin.pub

* On lance le setup

gl-setup admin.pub

* Modifier le masque de droits de UMASK a 0027

* Sur le poste admin on peut alors tester le depot

git clone gitolite@serveur:gitolite-admin.git

* ajout d’un user en mettant la clé du user

vim gitolite-admin/keydir/newuser.pub

* Ajout d’un depot newrepo

vim gitolite-admin/conf/gitolite.conf
repo    gitolite-admin
        RW+     =   admin

repo    newrepo
        RW+     =   @all                    

* On envoie le tout au serveur

cd gitolite-admin
git add -A 
git commit 'add repo'
git push