Atualização : este artigo foi publicado na edição 42 do Hacker Monthly .
Primeiro, crie um diretório em seu servidor e inicialize um repositório git vazio. Gosto de servir meus sites de ~/www/
, então é isso que farei neste exemplo.
mkdir ~/www/example.com && cd ~/www/example.com
git init
A seguir, vamos configurar o repositório git do seu servidor para lidar bem com a implantação via git push
.
git config core.worktree ~/www/example.com
git config receive.denycurrentbranch ignore
Por fim, configuraremos um gancho pós-recebimento para o git fazer o check-out do master
branch para que seu servidor da web possa servir os arquivos desse branch. (Lembre-se, ^D
é Control + D, ou qualquer que seja o caractere EOT do seu shell .
cat > .git/hooks/post-receive
#!/bin/sh
git checkout -f
^D
chmod +x .git/hooks/post-receive
Lembre-se de que você pode adicionar o que quiser ao gancho pós-recebimento se tiver um processo de construção. Por exemplo, um dos meus projetos sinatra usa o seguinte gancho pós-recebimento:
#!/bin/sh
git checkout -f
bundle install
touch ~/www/example.com/tmp/restart.txt
De volta à sua máquina local, vamos deixar seu repo git pronto para implantação.
cd ~/www-dev/example.com
git remote add origin
ssh://user@example.com/home/user/www/example.com
Para o primeiro envio para o seu servidor, execute o seguinte comando.
git push origin master
Agora, sempre que você quiser implantar as alterações feitas localmente, basta executar o seguinte comando!
git push