Estou começando a usar o Git para gerenciar as compilações do site Joomla, e estou procurando algumas orientações de melhores práticas. Tal como está:
- Use o WHM para provisionar uma nova conta. Eu escrevi um gancho pós-instalação para baixar automaticamente o Joomla do Github e colocá-lo no
public_htmldiretório relevante , além de criar o banco de dados e o usuário do banco de dados - Instale manualmente o Joomla através da interface da web (embora atualmente esteja procurando uma maneira de automatizar isso também)
- Configure um repositório simples acima
public_html- é aí que os usuários pressionam e puxam. Vamos chamar issoorigin - Configure um repositório padrão no
public_html - Adicionar um específico do Joomla
.gitignore - Especifique o repositório simples como nosso controle remoto (
git remote add origin ../repo.git) - Execute
git add ., em seguidagit commit -m"Initial J! Commit",git push origin masterpara obter a instalação padrão em nosso repositório simples - Adicione um
post-receivegancho ao repositório simples para puxar alterações automaticamente para o repositóriopublic_html(como o repositório básico é onde os desenvolvedores enviarão alterações locais) - Adicione um
post-updategancho ao repositóriopublic_htmlcaso alguém faça alterações no servidor ... embora não devam
Não estou muito preocupado com bancos de dados no momento. Meu principal problema agora é lidar com adições / alterações de arquivos Joomla. Obviamente, ao instalar modelos e extensões, certos arquivos serão adicionados e removidos. Da mesma forma, as atualizações do Joomla causarão alterações.
Qual é a melhor maneira de lidar com essas alterações no servidor? Eu estava pensando em escrever um plugin que corre onAfterRenderou similar que usos PHPGit para executar git add ., git commit git push origin master. Então, na minha cópia local, eu posso apenas dar um puxão e tudo acontece. Ou há uma maneira melhor?
.gitignore? Atualmente sou o único desenvolvedor e sou bastante novo no Git, por isso segui algumas orientações on-line sobre o fluxo de trabalho para desenvolvedores da Web para chegar onde estou, levando à estrutura pública / vazia.