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_html
diretó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 master
para obter a instalação padrão em nosso repositório simples - Adicione um
post-receive
gancho 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-update
gancho ao repositóriopublic_html
caso 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 onAfterRender
ou 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.