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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:git:tp-gerer-son-site-web [06/03/2014 18:06] captnfab [Opérations courantes] |
doc:systeme:git:tp-gerer-son-site-web [03/07/2014 00:06] 127.0.0.1 modification externe |
||
---|---|---|---|
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 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 === | ||
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 111: | Ligne 113: | ||
* 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' | ||
- | git push origin dev</code> | + | 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 129: | Ligne 131: | ||
* 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. | ||
Ligne 139: | Ligne 141: | ||
//Ou correction d'une fonctionnalité indésirable…// | //Ou correction d'une fonctionnalité indésirable…// | ||
- | - Récupérer des versions à jour du dépôt <code user>git checkout dev | + | * Récupérer des versions à jour du dépôt : |
+ | <code user>git checkout dev | ||
git pull</code> | git pull</code> | ||
- | - Éditer la branche dev | + | * Éditer la branche dev |
- | - Valider vos modifications <code user>git commit -a -m 'bug corrigé'</code> | + | * Valider vos modifications : |
- | - Soumettre vos modifications <code user>git push</code> | + | <code user>git commit -a -m 'bug corrigé'</code> |
- | - Lorsque le résultat est convenable, mettre à niveau la branche master<code>git checkout master | + | * Soumettre vos modifications |
- | git merge dev -m 'intégration de la correction de bug' | + | <code user>git push</code> |
- | git push</code> | + | * Lorsque le résultat est convenable, mettre à niveau la branche master |
+ | <code user>git checkout master | ||
+ | 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 | ||
+ | rm -r * | ||
+ | wget 'http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz' -O/tmp/dokuwiki-stable.tgz | ||
+ | tar xf /tmp/dokuwiki-stable.tgz --strip-components 1 | ||
+ | git add --all . | ||
+ | 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 | ||
+ | git rebase upstream</code> | ||
+ | <note important>Corriger les erreurs éventuelles de fusion. Par exemple : | ||
+ | <code user>git rm VERSION | ||
+ | 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 | ||
+ | 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) |