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