===== 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