Installer Git sur un serveur privé

avril 10, 2015 7:13 Publié par Laissez vos commentaires

Dans cet article, nous allons apprendre à utiliser le célèbre outil de gestion de version sur un serveur privé Linux Centos.

Sur le serveur distant

Installation de git et des dépendances :

yum install git
sudo yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel

Création du dossier git :

mkdir -p /var/git/sitedev.git

Création du dépôt git :
Il existe 2 types de repository : bare et non bare.
git-int : le repository contient le répertoire .git (toute l’historique et la configuration de git) mais également les codes sources originaux de votre projet.
git-init –bare : ne contient que les versions de votre code (utilisation dans le cadre d’un dev collaboratif sur un serveur centralisé. Les sous dossier du dossier .git sont placés directement à la racine du site.

cd /var/git/sitedev.git
git init --bare
chown -R git:git /var/git

N’oubliez pas de changer le mot de passe git

passwd git

Configuration SSH

Génération d’une paire de clé privée et publique :

[root@dev git]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@dev

Vous pouvez vérifier que la génération des clés a bien été effectuée (répertoire par défaut /.ssh):

cd ~/.ssh
[root@dev .ssh]# ls -l
-rw-r--r-- 1 root root    0  1 août   2014 authorized_keys2
-rw------- 1 root root 1675  3 avril 16:44 id_rsa
-rw-r--r-- 1 root root  390  3 avril 16:44 id_rsa.pub

Nous voyons bien notre clé privée (id_rsa) et notre clé publique (id_rsa.pub).

Création du fichier vide authorized_keys avec la commande touch:

mkdir /var/git/.ssh
touch /var/git/.ssh/authorized_keys

Nous allons maintenant insérer dans ce fichier un script contenant la clé publique 1.

[root@dev git]# cd ~/.ssh
[root@dev .ssh]# cat -s id_rsa.pub

Copiez cette clé dans le fichier vide /var/git/.ssh/authorized_keys :

[root@dev .ssh]#  echo "jgdsfghpinpgineoringeprgin" >> /var/git/.ssh/authorized_keys

Application des droits :

chmod 755 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
eval $(ssh-agent)
ssh-add

En local sous Windows

Procédez à l’installation de git pour Windows :
http://git-scm.com/download/win
Vérifiez la version installée :

Z:\>git --version
git version 1.9.5.msysgit.1

Récupération de notre projet sur le serveur distant :

Placez vous dans le dossier souhaité (ex: wamp\www) puis lancez la commande suivante :

c:\wamp\www>git clone git@MONSERVEUR:/var/git/sitedev.git
Cloning into 'sitedev'...
The authenticity of host 'MONSERVEUR (MONSERVEUR)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'MONSERVEUR' (RSA) to the list of known hosts.
git@MONSERVEUR password:
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Parfait, notre dossier sitedev (vide dans notre cas) a bien été récupéré! Enfin, vide pas tout à fait car il contient un dossier .git contenant le squelette du dépôt git.
Ajoutons à présent un simple fichier readme en local. La commande git status nous informe que ce fichier n’est pas tracké:

C:\wamp\www\sitedev>git status
On branch master
Initial commit
Untracked files:
  (use "git add ..." to include in what will be committed)

        readme.txt

nothing added to commit but untracked files present (use "git add" to track)

pour l’ajouter au suivi de version il suffit d’utiliser la commande

git add readme.txt

Validez ensuite les changements avec un message :

git commit -m "mon message"

le fichier est ajouté au HEAD, en attente d’être envoyé sur votre serveur distant, ce que nous allons faire immédiatement :

git push origin master

Erreurs possibles :
Git – refusing to update checked out branch

Quelques commandes utiles:

# Configurer votre nom et votre adresse email
git config --global user.name "tuto"
git config --global user.email "tuto@example.lan"
#Visualiser les modifications
git diff 
#Valider vos modifications avec message (argument -m) et indexation auto (-a)
git commit -a -m "mon message"
#visualiser l'historique des modifications
git log
#le git log affiche l'identifiant du commit. Les 10 premiers caractères sont utiles si vous #voulez créer un tag de version
git tag 12345rr698

Voilà pour une configuration basique de Git sur un serveur privé.

A+

Notes:

  1. cat -s permet d’afficher le contenu d’un fichier sans les lignes vides

Classés dans :

Cet article a été écrit par admin

Laisser un commentaire