A plusieurs c'est toujours plus facile
Utiliser Git pour gérer son site Web PDF Imprimer Envoyer
Écrit par Administrator   
Dimanche, 04 Janvier 2015 03:35

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.

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 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 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 Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. :super_projet.git

 

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 Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. :mon_projet.git
$ git push mprojet +master:refs/heads/master

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 :

 

  • http://toroid.org/ams/git-website-howto
  • http://git-scm.com/book/fr/v1/Les-bases-de-Git-D%C3%A9marrer-un-d%C3%A9p%C3%B4t-Git
  • https://www.atlassian.com/git/tutorials/syncing
  • http://stackoverflow.com/questions/7633299/simple-git-post-commit-hook-to-copy-committed-files-to-a-certain-folder
  • http://stackoverflow.com/questions/6635018/reuse-git-work-tree-in-post-receive-hook-to-rm-a-few-files
  • http://gitref.org/creating/#init
  • http://stackoverflow.com/questions/2114111/where-does-git-config-global-get-written-to
  • http://openclassrooms.com/courses/gerez-vos-codes-source-avec-git
  • https://ensiwiki.ensimag.fr/index.php/Maintenir_un_historique_propre_avec_Git

 

Mise à jour le Dimanche, 04 Janvier 2015 23:25