Por meses, eu tenho tentado planejar uma boa estrutura de projeto para usar o controle de versão git para o desenvolvimento de sites WordPress que não sacrifica a capacidade de atualizar o núcleo e os plugins através do painel do WP, não requer uma estrutura de diretório não convencional (wp conteúdo fora da pasta pai do WP) e fácil de gerenciar e implantar sites inteiros. Eu li sobre submódulos, subárvores, repositórios aninhados, etc., e ainda estou tendo dificuldades para encaixar tudo e escolher a estratégia certa.
Aqui está o que estou pensando agora, com meus pensamentos sobre como eu lidaria com repositórios git entre parênteses.
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
Isso me deixa com vários problemas / perguntas;
Atualizações automáticas; Adoro o novo recurso de atualizações automáticas, que pode economizar muito tempo e esforço para manter meus sites atualizados e seguros, mas parece que isso gera uma chave no rastreamento de alterações de código com o git. Existe alguma maneira de rastrear minhas alterações de código enquanto ainda permite que o núcleo do WordPress seja atualizado automaticamente?
Ter subárvores sob o repositório principal do WordPress me impede de usar o git para mesclar novas atualizações principais ou enviar minhas alterações de volta ao repositório principal do WordPress (se eu decidir que gostaria de ser um colaborador principal)?
Para plugins que não possuem um repositório público de git, ignorá-los completamente cria o problema de não poder clonar rapidamente o site inteiro em um novo servidor sem copiar manualmente os arquivos para o servidor. Isso também causa um problema se eu quiser fazer alterações no código desse plug-in, essas alterações não são rastreadas e podem ser facilmente perdidas em uma atualização de plug-in.
Então, para resumir, o que é uma boa configuração do git + WordPress que evita esses problemas? Agradecemos o seu feedback sobre minha estrutura de projeto proposta. De qualquer maneira que você possa me ajudar a melhorar isso, seria muito apreciado!
PS, se houver um fórum melhor para esta discussão, por favor me aponte para lá.