Git : gérer son site Web

Basé sur l’article de Abhijit Menon-Sen <ams@toroid.org>.

Le but de cet article est de décrire la mise en oeuvre de GIT pour publier simplement ses codes sources depuis un poste local vers un serveur Web distant. Tout ce qui est décrit dans cet article a été mis en oeuvre et fonctionne.

git_site_web_v1

Prérequis :

  • Installer Apache, MySQL et PHP sur le serveur Web distant
  • Installer GIT sur le serveur Web distant
  • Installer GIT (et Tortoise GIT pour un environnement plus convivial) sur le PC local
Sur le PC local :
Pour commencer nous devons démarrer un dépôt Git d’une des manières suivantes :
  • En partant de zéro en créant un répertoire vide pour notre nouveau projet et en l’initialisant dans Git
  • En reprenant le répertoire d’un projet déjà existant et en l’initialisant dans Git
  • En clonant un dépôt Git existant
Dans les deux premiers cas, il faut se rendre dans le répertoire du projet (ex : mon_projet) et lancer la commande suivante :
$ cd mon_projet
$ git init

Il sera ensuite nécessaire d’indexer et de valider les fichiers et répertoires (ex : mon_repertoire, index.php) que nous souhaitons versionner.

$ git add mon_repertoire
$ git add index.php
$ git commit -m « démarrage de mon projet avec Git »

Dans le dernier cas il faut à l’emplacement où nous souhaitons créer le dépôt, exécuter la commande suivante :

$ git clone jhon@192.168.0.10 :super_projet.git

super_projet.git est le projet à cloner. jhon@192.168.0.10 est le nom d’utilisateur et l’adresse IP du serveur d’où nous allons récupérer le dépôt (connexion SSH).

Sur le serveur Web distant :

Nous commençons par créer un dépôt vide qui sera le miroir de notre dépôt local.

$ mkdir /home/john/mon_projet.git
$ cd /home/john/mon_projet.git
$ git init –bare

Nous définissons et activons ensuite un hook post-receive qui fait un « check out » de notre dernière branche dans le document root du serveur Web (Le répertoire doit obligatoirement exister, Git ne le créera pas).

$ mkdir /var/www/mon_projet_web
$ vi /home/john/mon_projet/hook/post-receive
$ #!/bin/sh
$ GIT_WORK_TREE=/var/www/mon_projet_web git checkout -f
$ chmod +x hooks/post-receive

Sur le PC local :

Nous définissons le miroir distant en précisant un nom et créons la branche master.

$ git remote add mprojet john@192.168.0.10 :mon_projet.git
$ git push mprojet +master:refs/heads/master
(ou plus simplement : « git push mprojet master ». Il ne sera nécessaire de préciser la branche master que lors du premier push)

Attention : git push mproject master (équivaut à git push mproject master:master ou à git push mprojet +master:refs/heads/master) ne fonctionne pas si le projet git ne contient aucun fichier (add + commit).

Le répertoire du projet (dans le document root) sur le serveur Web distant contient désormais une copie de nos fichiers sources locaux.

Le processus de publication des fichiers sources :

Il suffira de lancer la commande :

$ git push mprojet

Ceci transférera tous les derniers commits vers le répertoire Web distant. En effet le hook post-receive se chargera de répliquer les fichiers du dépôt distant dans le répertoire Web visible par tous.

Références (Git : gérer son site Web) :

 

Poster un Commentaire

Soyez le premier à commenter !

Me notifier des
avatar
wpDiscuz