Durante meses, he estado tratando de planificar una buena estructura de proyecto para usar el control de versiones git para el desarrollo de sitios web de WordPress que no sacrifique la capacidad de actualizar el núcleo y los complementos a través del panel de control de WP, no requiere una estructura de directorio no convencional (wp -contenido fuera de la carpeta principal de WP) y eso es fácil de administrar e implementar sitios web completos. He leído sobre submódulos, subárboles, repositorios anidados, etc., y todavía me resulta difícil adaptarlo todo y elegir la estrategia correcta.
Esto es lo que estoy pensando ahora, con mis pensamientos sobre cómo manejaría los repositorios de git entre paréntesis.
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
Esto me deja con varios problemas / preguntas;
Actualizaciones automáticas; Me encanta la nueva función de actualizaciones automáticas, potencialmente podría ahorrar mucho tiempo y esfuerzo para mantener mis sitios actualizados y seguros, pero parece que es un obstáculo en el seguimiento de los cambios de código con git. ¿Hay alguna forma de rastrear los cambios en mi código y al mismo tiempo permitir que el núcleo de WordPress se actualice automáticamente?
¿Tener subárboles bajo el repositorio principal de WordPress me impide usar git para fusionarme en nuevas actualizaciones principales o enviar mis cambios al repositorio principal de WordPress (si alguna vez decido que me gustaría ser un contribuidor principal)?
Para los complementos que no tienen un repositorio público de git, ignorarlos completamente crea el problema de no poder clonar rápidamente todo el sitio en un nuevo servidor sin copiar manualmente los archivos en el servidor. También causa un problema si quiero hacer cambios en el código de ese complemento, esos cambios no se rastrean y podrían perderse fácilmente en una actualización del complemento.
Entonces, para resumir, ¿cuál es una buena configuración de git + WordPress que evita estos problemas? Agradecería sus comentarios sobre la estructura de mi proyecto propuesto. ¡Cualquier forma en que me puedan ayudar a mejorar esto sería muy apreciada!
PD: si hay un mejor foro para esta discusión, indíqueme allí.