Enviando para o servidor de produção
Presumo que na você cotação , a resposta se refere ao envio para o servidor de produção como "uma história diferente", apenas porque é possível enviar qualquer commit antigo para o servidor de teste para teste, mas você teria muito cuidado apenas para enviar uma versão totalmente testada para o servidor de produção.
Acho que a abordagem a que você se refere (de implantar enviando para um repositório vazio com um
post-receive
que faz git checkout -f
com um GIT_WORK_TREE
definido adequadamente ) é bom para implantar a partir do git. Arquivos de configuração
Esse é um plano razoável, mas você deve ter um pouco de cuidado ao usar
.gitignore
para ignorar os arquivos de configuração - você pode querer ver esta resposta para saber mais sobre isso:Acessando dados
Acho que a pergunta sobre os dados do seu servidor de teste é realmente um problema separado, pois nenhum desses dados estará no seu sistema de controle de versão - pode valer a pena adicionar outra pergunta aqui sobre esse problema. Você poderia tem um script que despeja dados em seu servidor ativo e os importa para o servidor de teste, mas posso pensar em muitas situações em que isso seria indesejável, principalmente quando os detalhes do cliente e as leis de proteção de dados precisam ser considerados.