Estou tentando decidir se a mudança para o VCS é sensata para mim. Sou desenvolvedor web único em uma organização pequena (5 pessoas). Estou pensando em VCS (Git) por estes motivos: controle de versão, backup externo, repositório de código centralizado (pode acessar de casa).
No momento, eu trabalho em um servidor ativo em geral. Entro no FTP, faço minhas edições e as salvo, em seguida, carrego e atualizo novamente. As edições geralmente são para arquivos de tema / plug-in para CMSes (por exemplo, Concrete5 ou Wordpress). Isso funciona bem, mas não fornece backup nem controle de versão.
Eu estou querendo saber a melhor forma de integrar o VCS neste procedimento. Eu imaginaria configurar um servidor Git no servidor web da empresa, mas não sei como enviar as alterações para as contas dos clientes (geralmente VPS no mesmo servidor) - no momento, basta acessar o SFTP com os detalhes e fazer as mudanças diretamente.
Também não tenho certeza do que representaria sensivelmente um repositório - o site de cada cliente obteria o seu próprio?
Qualquer insight ou experiência seria realmente útil. Acho que não preciso de todo o poder do Git, mas o controle básico de versão e o acesso à nuvem de fato seriam realmente úteis.
Edição: Eu reduzi-o para as duas opções que parecem mais sensatas. O primeiro é baseado na resposta da ZweiBlumen , na qual são feitas edições no servidor ativo e confirmadas a partir daí para o servidor Git (externo). Isso tem a vantagem de que meu fluxo de trabalho não mudará muito (há uma etapa extra de fazer as confirmações, mas, caso contrário, é idêntico).
A segunda opção é trabalhar localmente usando XAMPP e confirmar as alterações na máquina local. Somente quando o site entra no ar eu carrego o artigo finalizado para o servidor da Web da máquina local (imediatamente após a confirmação final para o Git). Isso parece bom em teoria, mas se o site posteriormente exigir reparos e eu os fizer no servidor ativo (como normalmente faço), precisarei copiar manualmente os arquivos alterados no meu repositório local e confirmar essas alterações no diretório Servidor Git. Isso parece excessivamente complexo e talvez seja muito diferente do meu fluxo de trabalho atual.
Penso que, em geral, darei uma chance à opção nº 1 e verei como eu vou.
fonte
Respostas:
O que eu faço (com o Subversion, mas também funcionará com o Git) é comprometer tudo em um repositório do Subversion, mas obviamente dividir em projetos, ramificações e tags, conforme necessário. Depois, faço check-out desses repositórios no servidor ativo. Portanto, quando eu faço uma alteração na minha máquina de desenvolvimento e a submeto ao repositório, geralmente é apenas o caso de atualizar a cópia com check-out no servidor ativo para tornar as alterações ativas. O bônus adicional é que, se eu precisar fazer uma correção rápida no servidor ativo, eu o comprometo no repositório do servidor e atualizo a cópia de trabalho na minha máquina de desenvolvimento.
Tenho certeza de que existem outras maneiras de gerenciar isso, mas acho isso bastante direto e estou exatamente na mesma situação que você: desenvolvedor único em uma organização pequena (4 pessoas).
fonte
É bastante fácil criar um
post-update
gancho , que atualiza automaticamente (git archive
é preferível exportar por razões de segurança) o diretório de dados do servidor da Web quando você envia para uma ramificação específica.Portanto, tenha um repositório git configurado em algum lugar (por razões de segurança, eu o colocaria em um servidor diferente da web) com esse gancho. Obviamente, você precisará do servidor de teste para testar alterações maiores, que podem estar na sua máquina local ou atualizadas pressionando para ramificação diferente. Em qualquer um dos casos, você pode ignorá-lo para obter ortografia trivial e correções de CSS simplesmente executando commit e push.
fonte
Eu seguiria estas etapas:
Configure um repositório por site, para evitar que eles se amontoem. As ramificações separadas permitem evitar que a versão "boa" atual seja alterada para o que você está trabalhando no momento, o que pode ou não funcionar.
fonte