Usando o git para implantar

3

Existe uma maneira de implantar / entregar uma ramificação git para diferentes servidores via SSH usando o git? Sem configurar um servidor git, usando serviços como o github ou conectando-se aos servidores remotos e puxando do servidor principal.

Eu preciso de algo semelhante ao rsync ou scp. Minha solução atual rápida e suja é check-out, clonagem em um diretório tmp e rsyncing para implantar o servidor.

    
por inselberg 04.09.2013 / 22:40

3 respostas

5

Primeira coisa, como muitas vezes me disseram, o git não é um framework de implementação. Isso afirmou, como Paul Gear disse, a maneira mais fácil é usar controles remotos.

Primeiro, configure o controle remoto na máquina que irá empurrar. O alvo deve ser um repositório vazio.

git remote add server1 ssh://[email protected]/home/username/gitrepo

selecione sua filial na máquina de origem:

git checkout featurebranch1

Por fim, envie os dados para o seu controle remoto:

git push server1 localbranch:destinationbranch

Ou você pode definir seu envio para o envio de dados e enviá-lo para qualquer que seja o ramo do envio de dados.

git config push.default upstream

Como mencionei anteriormente, o git remoto deve ser um repositório vazio para aceitar push como este.

Talvez o uso de um repositório vazio não seja suficiente. Nesse caso, no lado do recebimento, talvez você queira fazer alguma coisa quando receber os dados, como, por exemplo, fazer o checkout dos arquivos em um diretório diferente (o repositório deve permanecer nu, lembre-se). Você pode fazer isso usando um gancho de pós-recebimento criando um arquivo de script em / path / to / bare / repository / hooks / post-recebimento da seguinte forma:

#!/bin/sh
GIT_WORK_TREE=/var/www/html git checkout -f

chmod para executável. Isso fará o checkout da ramificação master no diretório especificado.

    
por 04.09.2013 / 23:30
2

Você pode enviar um repo remoto para o ssh - é isso que eu uso para atualizar meus repositórios do github. Configure suas chaves ssh e adicione um controle remoto no formulário user @ host: place / to / put / it.git

    
por 04.09.2013 / 23:06
2

Há uma solução completa que pode ajudá-lo a implantar seu aplicativo da Web, chamado capistrano.

É um programa ruby simples que ajuda muito ao implantar aplicativos em muitos servidores.

    
por 05.09.2013 / 00:42

Tags