Como enviar alterações de um servidor web de implantação ao vivo de volta para o repositório git

Como enviar alterações de um servidor web de implantação ao vivo de volta para o repositório git

Estou trabalhando em um ambiente onde os desenvolvedores trabalham diretamente com arquivos de script e imagem no servidor web de implantação ao vivo. Isso é assustador e causou alguns problemas, embora até agora surpreendentemente poucos. O controle de origem não é usado para essas alterações, as alterações são feitas no servidor ativo e somente no servidor ativo. Não sei como fazer com que as alterações feitas por outros desenvolvedores no servidor da Web ativo sejam mantidas/mescladas quando eu implantar minhas alterações no servidor da Web ativo. Esse problema parece piorar as coisas usando o controle de origem, em vez de melhorá-lo.

Eu configurei pessoalmente servidores git e svn e usei controle de versão com git e svn nos últimos anos em muitos projetos de aplicativos de desktop e aplicativos móveis. Mas isso me deixou perplexo.

Responder1

A prática recomendada é usar o git como parte de sua implantação. Tanto que você encontrará relativamente poucas respostas sobre outros usos do git.

Dito isto, o git pode ser usado de várias maneiras. Se a sua implantação for no servidor ativo, e não no git, ainda há valor em confirmar as alterações no git, para que você possa pelo menos ver o que mudou e quando e reverter as coisas. O que você perderá são comentários sensatos e agrupamento de alterações em confirmações, para que você possa ver para onde deseja reverter rapidamente e ver quais alterações em arquivos diferentes provavelmente dependem umas das outras.

É perfeitamente possível deixar seu código ativo ser um diretório de trabalho git, e você pode ter atualizações automatizadas do repositório em execução de vez em quando a partir do cron.

etckeeper (https://github.com/joeyh/etckeeper) é, em alguns aspectos, comparável. Ele foi projetado para registrar alterações no diretório /etc de um servidor, em oposição a um site, mas é bastante semelhante ao que você tem em mente. Provavelmente terá algumas idéias úteis inseridas em seus ganchos de commit e similares, mas também é complicado por cobrir vários sistemas VCS diferentes e compatibilidade com vários sistemas operacionais.

informação relacionada