Pendant des mois, j'ai essayé de planifier une bonne structure de projet pour utiliser le contrôle de version git pour le développement de sites Web WordPress qui ne sacrifie pas la possibilité de mettre à jour le noyau et les plugins via le tableau de bord WP, ne nécessite pas de structure de répertoire non conventionnelle (wp -contenu en dehors du dossier parent WP) et qui est facile à gérer et à déployer des sites Web entiers. J'ai lu des informations sur les sous-modules, les sous-arborescences, les référentiels imbriqués, etc., et j'ai toujours du mal à tout assembler et à choisir la bonne stratégie.
Voici ce que je pense en ce moment, avec mes réflexions sur la façon dont je gérerais les dépôts git entre parenthèses.
root (main project repo)
|-- wordpress (public git repo added as subtree)
| |-- wp-content
| | |-- plugins
| | | |-- my-custom-plugin (git repo added as subtree)
| | | |-- other-plugin-with-git-repo (git repo added as subtree)
| | | +-- other-plugin-without-git-repo (ignored/untracked)
| | |-- themes
| | | |-- my-custom-theme (git repo added as subtree)
| | | |-- other-theme-with-git-repo (git repo added as subtree)
| | | +-- other-theme-without-git-repo (ignored/untracked)
| | +-- uploads (ignored/untracked)
| |-- wp-admin
| +-- wp-includes
|-- wp-config.php (ignored/untracked)
+-- other-files.txt
Cela me laisse avec plusieurs problèmes / questions;
Mises à jour automatiques; J'adore la nouvelle fonctionnalité de mises à jour automatiques, elle pourrait potentiellement économiser beaucoup de temps et d'efforts pour maintenir mes sites à jour et sécurisés, mais il semble qu'elle jette une clé dans le suivi des modifications de code avec git. Existe-t-il un moyen de suivre mes modifications de code tout en permettant à WordPress core de se mettre à jour automatiquement?
Le fait d'avoir des sous-arborescences sous le référentiel de base WordPress m'empêche-t-il d'utiliser git pour fusionner de nouvelles mises à jour de base ou de repousser mes modifications vers le référentiel de base WordPress (si jamais je décidais que j'aimerais être un contributeur principal)?
Pour les plugins qui n'ont pas de dépôt git public, les ignorer complètement crée le problème de ne pas pouvoir cloner rapidement tout le site sur un nouveau serveur sans copier manuellement les fichiers sur le serveur. Cela pose également un problème si je souhaite apporter des modifications au code de ce plugin, ces modifications ne sont pas suivies et pourraient facilement être perdues lors d'une mise à niveau du plugin.
Donc, pour résumer, qu'est-ce qu'une bonne configuration git + WordPress qui évite ces problèmes? J'apprécierais vos commentaires sur ma structure de projet proposée. Toute façon dont vous pouvez m'aider à améliorer cela serait très appréciée!
PS, s'il y a un meilleur forum pour cette discussion, veuillez me pointer là.