Eu tenho um repositório central do CENTRAL que tem três repositórios de desenvolvedor puxando e empurrando para ele normalmente.
Eu também tenho dois outros repositórios extraídos do repositório bare CENTRAL: um é o servidor ativo e o outro é um servidor de teste / estágio - cada um extraído de sua própria ramificação.
O cenário é o seguinte: eu tenho um post-update
script de gancho no repositório CENTRAL que acessa automaticamente os repositórios de teste e ao vivo e executa um comando pull em cada um. Isso atualiza os servidores de teste e ativos, tudo dependendo de qual filial possui novas confirmações. Tudo isso funciona muito bem.
O problema é o seguinte: pode haver momentos em uma emergência em que os arquivos possam ser atualizados diretamente no servidor (via ftp ou qualquer outra coisa) e o script de pós-atualização do CENTRAL falhará, pois ocorrerão conflitos de mesclagem / substituição. Não há como evitar esse cenário, e é inevitável.
O que eu gostaria que acontecesse é o seguinte: quero que o pull dos sites ao vivo e de teste sempre sobrescreva / mescle no pull. Sempre. Esses repositórios serão apenas de atração, pois não são para desenvolvimento.
Em todas as minhas pesquisas, não consigo encontrar uma boa solução para que uma solicitação sempre force uma substituição dos arquivos locais. Tudo isso é possível? Seria um ótimo cenário de desenvolvimento, se sim.