05 — Versionner et déployer Grav proprement avec Git
Décider ce qui va dans Git, protéger les secrets, préparer o2switch et déployer sans mélanger dépôt de travail et site public.
Avant de commencer
- Connaître git add, commit, pull et push.
- Avoir terminé les modules 01 à 04.
Décider ce que Git doit suivre
Pages, thèmes et beaucoup de réglages Grav sont des fichiers, mais caches, logs, sessions, sauvegardes et secrets ne doivent pas être versionnés aveuglément.
Inspecte toujours git status et le .gitignore avant le premier push.
git status - Le dépôt ne propose pas d'ajouter caches, logs ou sauvegardes runtime.
Faire des commits lisibles
Le contenu textuel de Grav permet des diffs propres. Sépare autant que possible modification éditoriale et changement technique.
git add user/pages user/themes
git commit -m "Mettre à jour accueil et thème" - Je peux lire git diff et comprendre exactement ce qui a changé.
Préparer o2switch
Pour Grav 2, vérifie PHP 8.3.11+, la réécriture d'URL Apache et les permissions d'écriture nécessaires.
Travaille d'abord sur une URL ou un sous-domaine de validation.
- Le domaine de test utilise une version PHP compatible.
- Grav peut écrire ses caches et fichiers nécessaires.
Utiliser le workflow de déploiement du Potager
Reste sur une chaîne claire : GitHub → clone de déploiement séparé → validation → copie contrôlée vers le DocumentRoot.
Évite d'utiliser le dossier public du site comme dépôt de travail si cela expose .git ou mélange source et runtime.
GitHub
↓
clone de déploiement
↓
validation
↓
DocumentRoot Grav - Je sais revenir au commit précédent sans improviser sur le serveur.
Tester une restauration
Une sauvegarde n'est vraiment utile qu'après un test de restauration. Restaure une copie de test au moins une fois avant de considérer le workflow fiable.
- J'ai déjà restauré une copie Grav à partir de ma sauvegarde.
🧯 Erreurs fréquentes
Le site fonctionne en local mais pas sur l'hébergement
Cause probable : PHP, réécriture URL ou permissions différentes
Correctif : Contrôler PHP, .htaccess/mod_rewrite et droits des fichiers avant de modifier le code.
Git veut ajouter énormément de fichiers runtime
Cause probable : .gitignore insuffisant ou dépôt initialisé trop haut
Correctif : Revoir le périmètre du dépôt et ignorer caches, logs, sessions et sauvegardes selon le projet.
Notes
- Le tuto GitHub → site live déjà présent sur tuto.lepotager.org complète ce module.
Sources de vérification
Ces liens servent à recontrôler le tuto quand l'outil ou l'hébergeur évolue.
Historique de la fiche
L'historique détaillé reste aussi disponible dans Git.