XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. Articles

Comment utiliser git pour gérer le déploiement de votre application web

The 2007-12-12 at 19:12 by Loïc d'Anterroches filed under Articles.

Un petit howto pour expliquer une manière, parmis de nombreuses, d’utiliser git pour gérer le déploiement d’une application PHP.

Push, pull et merge

Dans ce petit tutoriel, je vais d’abord présenter comment mettre en place le système, puis comment l’utiliser en suite chaque jour. Si vous ne connaissez pas git, c’est le moment d’apprendre.

Préréquis

  • Votre projet géré avec git.
  • Un serveur de déploiement accessible avec ssh.

Mise en place du système

sur votre ordinateur de travail

On considère que sur votre système, master sera la branche prête à être déployée. Lancez alors cela :

$ git clone --bare ./projet projet.git
$ rsync -a --stats --delete ./projet.git/ votre.serveur:~/projets/projet.git/

Note que pour que la commande rsync fonctionne, le répertoire ~/projects/projet.git/ doit être déjà créé.

Maintenant, vous avez un dépôt git sur votre serveur. Il est sous votre propre identifiant.

sur le serveur distant

Votre code va être utilisé mais pas sous votre identifiant, plutôt sous l’identifiant www-data. Donc, ce qu’on va faire, c’est qu’on va faire un clone du dépôt git qui est sur votre serveur en utilisant l’utilisateur www-data.

$ sudo su www-data
$ cd ~
$ git clone /home/votrelogin/projets/projet.git projet

Maintenant, projet est un clone du clone de votre dépôt git de votre machine de travail, le tout avec un checkout de la branche master qui observe votre propre branche master.

Pousser les changements locaux vers le serveur

Quand on fait des changements localement, il faut les répercuter sur la version de www-data.

Localement cela donne:

$ git branch nouveau-truc
$ git checkout nouveau-truc
$ (code code code)
$ git commit
$ git checkout master
$ git merge nouveau-truc
$ git branch -d nouveau-truc
$ git push ssh://serveur.distant/home/votrelogin/projets/projet.git master

Ajoutez :

[remote "serveur-distant"]
    url = ssh://serveur.distant/home/votrelogin/projets/projet.git

à la fin de votre .git/config et vous pourrez directement faire :

$ git push serveur-distant master

Sur le serveur distant :

$ sudo su www-data
$ cd ~
$ cd projet
$ git pull

Les changements sont maintenant en ligne.


Comments from readers

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS