logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:git:tp-gerer-son-site-web [06/03/2014 17:46]
captnfab
doc:systeme:git:tp-gerer-son-site-web [18/09/2015 17:59] (Version actuelle)
milou [Opérations courantes]
Ligne 1: Ligne 1:
-====== Gérer son site web avec Git ======+====== ​TP : Gérer son site web avec Git ======
  
   * Objet : Gérer son site web avec Git   * Objet : Gérer son site web avec Git
   * Niveau requis : {{tag>​avisé}}   * Niveau requis : {{tag>​avisé}}
   * Commentaires : //Vous gérez un ou plusieurs sites web sur votre serveur. Vous voulez l'​administrer avec git pour faciliter les mises-à-jour/​patch/​etc.//​   * Commentaires : //Vous gérez un ou plusieurs sites web sur votre serveur. Vous voulez l'​administrer avec git pour faciliter les mises-à-jour/​patch/​etc.//​
-  * À savoir : Utilisation ​basique ​de git FIXME :-) +  * À savoir : [[:​doc:​systeme:​git:​git|Utilisation de git]] :-) 
-  * Suivi : {{tag>en-chantier}} +  * Suivi : {{tag>​}} 
-    * Création par **captnfab** 06/03/2014+    * Création par [[user>captnfab]] 06/03/2014
     * Testé par <...> le <...> FIXME     * Testé par <...> le <...> FIXME
-  * Commentaires sur le forum : [[url Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME+  * Commentaires sur le forum : [[https://​debian-facile.org/​topic-8596-wiki-tp-gerer-son-site-web-avec-git-page-1.html ​ici]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
 **Nota :** **Nota :**
Ligne 33: Ligne 33:
  
 Installer **git** sur le **serveur** et le **client** : ​ Installer **git** sur le **serveur** et le **client** : ​
-<code=root>​apt-get install git</​code>​+<code root>​apt-get install git</​code>​
  
 ===== Mise en place ===== ===== Mise en place =====
Ligne 42: Ligne 42:
 Sur le **serveur** :​ Sur le **serveur** :​
  
-<code user>​mkdir -p /​srv/​monsiteweb/​www.git +<code user>​mkdir -p /​srv/​monsiteweb/​www.git</​code>​ 
-mkdir www.git +<code user>mkdir www.git</​code>​ 
-git init --bare www.git</​code>​+<code user>git init --bare www.git</​code>​
  
 === Configuration des hooks sur le serveur === === Configuration des hooks sur le serveur ===
Ligne 72: Ligne 72:
 Le rendre exécutable :​ Le rendre exécutable :​
 <code user>​chmod +x /​srv/​monsiteweb/​www.git/​hooks/​post-update</​code>​ <code user>​chmod +x /​srv/​monsiteweb/​www.git/​hooks/​post-update</​code>​
 +
 +<note idée>Si vous utilisez un moteur de blog statique comme [[http://​blog.getpelican.com/​|pelican]] ou [[http://​posativ.org/​acrylamid/​|acrylamid]],​ vous pouvez lancer la recompilation du blog depuis ce fichier, juste après le checkout.</​note>​
  
 === Clonage du dépôt sur le client === === Clonage du dépôt sur le client ===
 Sur le **client** :​ Sur le **client** :​
-<code user>​mkdir -p ~/​projets/​mon-site/​ +<code user>​mkdir -p ~/​projets/​mon-site/​</​code>​ 
-cd ~/​projets/​mon-site/​ +<code user>cd ~/​projets/​mon-site/​</​code>​ 
-git clone toto@serveur:/​srv/​monsiteweb/​www.git</​code>​+<code user>git clone toto@serveur:/​srv/​monsiteweb/​www.git</​code>​
  
 ==== Création des branches ==== ==== Création des branches ====
Ligne 92: Ligne 94:
  
   * Indiquer à git de les prendre en compte :   * Indiquer à git de les prendre en compte :
-<code user>git add . +<code user>git add .</​code>​ 
-git commit -m '​Version initiale'</​code>​+<code user>git commit -m '​Version initiale'</​code>​
  
   * Renommer la branche en //​upstream//​ :​   * Renommer la branche en //​upstream//​ :​
Ligne 99: Ligne 101:
  
   * Envoyer la branche sur le dépôt distant :   * Envoyer la branche sur le dépôt distant :
-<code user>git push origin upstream</​code>​+<code user>git push -u origin upstream</​code>​
  
 === La branche dev === === La branche dev ===
Ligne 105: Ligne 107:
  
   * Créer la branche //dev// basée sur la branche //​upstream//​ :​   * Créer la branche //dev// basée sur la branche //​upstream//​ :​
-<code user>git checkout upstream +<code user>git checkout upstream</​code>​ 
-git branch dev +<code user>git branch dev</​code>​ 
-git checkout dev</​code>​+<code user>git checkout dev</​code>​
  
   * Appliquer les modifications voulues.   * Appliquer les modifications voulues.
 <note info>Par exemple : <note info>Par exemple :
-<code user>rm README VERSION COPYING</​code>​+<code user>rm README VERSION COPYING</​code></​note>
  
   * Valider les changements et envoyer le résultat sur le dépôt distant :   * Valider les changements et envoyer le résultat sur le dépôt distant :
-<code user>git commit -a -m '​Préparation à la mise en test'​ +<code user>git commit -a -m '​Préparation à la mise en test'</​code>​ 
-git push origin dev</​code>​+<code user>git push -u origin dev</​code>​
  
 Le hook de la branche dev devrait alors s'​activer automatiquement et placer les sources dans le dossier de dev sur le serveur. Le hook de la branche dev devrait alors s'​activer automatiquement et placer les sources dans le dossier de dev sur le serveur.
Ligne 123: Ligne 125:
  
   * Créer la branche //prod// basée sur la branche //dev// :   * Créer la branche //prod// basée sur la branche //dev// :
-<code user>git checkout dev +<code user>git checkout dev</​code>​ 
-git branch prod +<code user>git branch prod</​code>​ 
-git checkout prod</​code>​+<code user>git checkout prod</​code>​
  
  
   * La branche de test étant satisfaisante (sinon on ne la passerait pas en production),​ on se contente de la publier.   * La branche de test étant satisfaisante (sinon on ne la passerait pas en production),​ on se contente de la publier.
-<code user>git push origin prod</​code>​+<code user>git push -u origin prod</​code>​
  
 Le hook de la branche prod devrait alors s'​activer automatiquement et placer les sources dans le dossier de prod sur le serveur. Le hook de la branche prod devrait alors s'​activer automatiquement et placer les sources dans le dossier de prod sur le serveur.
  
 ===== Opérations courantes ===== ===== Opérations courantes =====
 +Comment intégrer les opérations de maintenance courantes avec la structure git définie.
 +
 +==== Ajout d'une fonctionnalité ====
 +//Ou correction d'une fonctionnalité indésirable…//​
 +
 +  * Récupérer des versions à jour du dépôt :
 +<code user>git checkout dev</​code>​
 +<code user>git pull</​code>​
 +  * Éditer la branche dev
 +  * Valider vos modifications :​
 +<code user>git commit -a -m 'bug corrigé'</​code>​
 +  * Soumettre vos modifications
 +<code user>git push</​code>​
 +  * Lorsque le résultat est convenable, mettre à niveau la branche master
 +<code user>git checkout master</​code>​
 +<code user>git merge dev -m '​intégration de la correction de bug'</​code>​
 +  * Serrer les fesses et soumettre le résultat :​
 +<code user>git push</​code>​
 +
 +==== Mise à jour depuis upstream ====
 +
 +  * Récupérer les nouvelles sources dans la branche //​upstream//​. ​
 +<code user>git checkout upstream</​code>​
 +<note info>Par exemple : <code user>git checkout upstream</​code>​
 +<code user>rm -r *</​code>​
 +<code user>​wget '​http://​download.dokuwiki.org/​src/​dokuwiki/​dokuwiki-stable.tgz'​ -O/​tmp/​dokuwiki-stable.tgz</​code>​
 +<code user>tar xf /​tmp/​dokuwiki-stable.tgz --strip-components 1</​code>​
 +<code user>git add --all .</​code>​
 +<code user>git commit -a -m '​nouvelle version upstream:​ Binky (2013-12-08)'</​code></​note>​
 +  * Soumettre le résultat :​
 +<code user>git push</​code>​
 +  * Importer les changements dans la branche de dev :
 +<code user>git checkout dev</​code>​
 +<code user>git rebase upstream</​code>​
 +<note important>​Corriger les erreurs éventuelles de fusion. Par exemple : ​
 +<code user>git rm VERSION</​code>​
 +<code user>git rebase --continue</​code></​note>​
 +  * Puis soumettre la nouvelle version :
 +<code user>git push --force</​code>​
 +  * Fusionner la branche dev opérationnelle depuis la branche prod :
 +<code user>git checkout prod</​code>​
 +<code user>git merge dev -m '​intégration de la nouvelle version upstream'</​code>​
 +  * Serrer les fesses et soumettre le résultat :
 +<code user>git push</​code>​
 +
 +===== Références =====
  
-//En cours//+  * http://www.git-scm.com/book/fr 
 +  * http://​toroid.org/​ams/​git-website-howto (en) 
 +  * https://​www.kernel.org/​pub/​software/​scm/​git/​docs/​githooks.html (en)
doc/systeme/git/tp-gerer-son-site-web.1394124375.txt.gz · Dernière modification: 06/03/2014 17:46 par captnfab

Pied de page des forums

Propulsé par FluxBB