Table des matières
MANAGER UN SITE WEB VIA GIT
Objectif
J'ai un beau site web sur un serveur, et je souhaite l'éditer sur mon ordi de dev, et pouvoir facilement déployer mes modifs pour mettre à jour le site web.
Si possible, je veux avoir une journalisation (versioning) des modifs, avec des branches de dev qui ne changent pas le site web (pour avoir le temps de tester)
Problématique
git est un super cvs, mais les fichiers ne sont pas facilement accessibles pour etre servis directement par un serveur web, en d'autres mots : “mon dossier gitRepos/monSite
contient juste un .git
, comment apache peut servir ça ?”
Solution
Source : http://joemaller.com/990/a-web-focused-git-workflow/
Tout d'abord, il faut créer un dépot dans le dossier qui sera servi par le serveur web :
cd /path-to-web-folder/ git init git add . git commit -m"initial commit"
ensuite créer un dépot “hub”, ailleurs
cd /path-to-hub/ git init --bare
et lier les 2 :
cd /path-to-web-folder/ git remote add hub /path-to-hub/ git remote show hub # pour vérifier git push hub master # si y'a rien dans le hub, on peut pas le cloner sur la machine dev
Ensuite, il faut gérer le hook post-update
, pour automatiser la mise à jour du repo servi par le serveur web quand on met à jour la branche master du hub
cd /path-to-hub/hooks # editer le fichier post-update pour mettre :
#!/bin/sh echo echo "**** Pulling changes into Prime [Hub's post-update hook]" echo cd /path-to-web-folder/ || exit unset GIT_DIR git pull hub master exec git-update-server-info
voilà, c'est bon