Procurando um jeito de automatizar a atualização do servidor de produção usando GIT, me deparei com os seguintes artigos que me ajudaram a fazer esse resumo: artigo de Akita, artigo de Thiago Belém, artigo de Abhijit Menon-Sen e artigo de Daniel Miesser. Resumi e modifiquei ligeiramente para meu próprio entendimento posterior e escrevi esse guia-lembrete. Notar que a minha configuração de ambiente é um Windows 7 como máquina local, um programa de SSH disponível (uso o GIT for Windows, mas pode ser o Putty), servidor remoto Linux hospedado no Uol Host. Mas deixemos de conversa e vamos pros comandos!
Criação de um repositório git vazio no servidor usando SSH:
mkdir home/meu_usuario/repos/meu_projeto.git
cd home/meu_usuario/repos/meu_projeto.git
git init --bare
Adicionando na máquina local o novo repositório remoto:
cd meu_projeto git remote add origin ssh://meu_usuario@meu_dominio/home/meu_usuario/repos/meu_projeto.git
Ou com um outro nome diferente de origin:
cd meu_projeto
git remote add nome ssh://meu_usuario@meu_dominio/home/meu_usuario/repos/meu_projeto.git
Escrevendo o git-hook responsável pela atualização:
cd ~/repos/meu_projeto.git/hooks
nano post-receive
#!/bin/sh
GIT_WORK_TREE=/home/meu_usuario/meu_projeto git checkout -f
(crtl+X para salvar)
chmod +x post-receive
Dando o primeiro push:
git push nome +master:refs/heads/master
Remoção de um repositório remoto:
git remote rm nome