Outils pour utilisateurs

Outils du site


gitmanagewebsite

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
gitmanagewebsite [2015/06/10 19:09] – créée lucgitmanagewebsite [2018/10/13 20:32] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +===== 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 :
 +
 +<code|bash>
 +cd /path-to-web-folder/
 +git init
 +git add .
 +git commit -m"initial commit"
 +</code>
 +
 +ensuite créer un dépot "hub", ailleurs
 +
 +<code|bash>
 +cd /path-to-hub/
 +git init --bare
 +</code>
 +
 +et lier les 2 :
 +
 +<code|bash>
 +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
 +</code>
 +
 +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
 +
 +<code|bash>
 +cd /path-to-hub/hooks
 +# editer le fichier post-update pour mettre :
 +</code>
 +<code|bash>
 +#!/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
 +</code>
 +
 +voilà, c'est bon