Durante meses he estado tratando de planificar una buena estructura de proyecto para usar el control de versiones de 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 un directorio no convencional Estructura (wp-contenido fuera de la carpeta principal de WP) y que es fácil de administrar y desplegar sitios web completos. He leído acerca de los submódulos, subárboles, repositorios anidados, etc., y todavía me resulta difícil compaginarlo 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 arroja una llave en el seguimiento de cambios de código con git. ¿Hay alguna forma de hacer un seguimiento de los cambios en mi código y al mismo tiempo permitir que el núcleo de WordPress se actualice automáticamente?
-
¿Tener subárboles en el repositorio central de WordPress me impide usar git para fusionar las nuevas actualizaciones del núcleo o devolver mis cambios al repositorio del núcleo de WordPress (si alguna vez decido que me gustaría ser un colaborador principal )?
-
Para los complementos que no tienen un repositorio git público, 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 realizar 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, ¿qué es una buena configuración de git + WordPress que evite estos problemas? Agradecería sus comentarios sobre la estructura de mi proyecto propuesto. Cualquier forma en que pueda ayudarme a mejorar esto, sería muy apreciada!
PD, si hay un foro mejor para esta discusión, por favor, apúntame allí.