Vamos configurar um repositorio git no servidor de produção para fazer deploy de nossa aplicação
Preparando o ambiente
Vamos criar um usuario no linux para cuidar do repositorio
$ useradd -d /home/repositorio repositorio # registrando uma senha para nosso novo usuario $ passwd repositorio $ chmod 755 /home/repositorio $ chown repositorio:repositorio /home/repositorio
Criando o repositório
$ mkdir /home/repositorio/fernandopetry.com.br.git $ cd /home/repositorio/fernandopetry.com.br.git $ git init --bare
pronto, agora temos um repositorio vazio
Adicionando o repositorio de produção no nosso projeto local
$ cd fernandopetry.com.br $ git remote add producao repositorio@meu_dominio.com:/home/repositorio/fernandopetry.com.br.git
Clonagem do repositorio para produção
Vamos clonar o projeto em produção que irá criar um projeto vazio online.
$ git clone /home/repositorio/fernandopetry.com.br.git /home/$USUARIO/fernandopetry.com.br/public_html
Vamos adicionar o usuario repositorio ao grupo do $USUARIO para poder executar os comandos do Hookes
$ gpasswd -a repositorio $USUARIO
Este seria o caminho no meu servidor, você deverá substituir pelo caminho do seu servidor
Git Hooks
Com esse “setup” feito, agora eu posso ir para o que importa, que é configurar meu hook. Lá no seu servidor, dentro do repositório bare que foi criado, encontre a pasta hooks, e dentro dela tem um arquivo chamado post-receive. Esse cara é o hook que vai detectar algo depois do recebimento de uma mudança. Você vai colocar esse código:
#!/bin/bash cd /public/diegoeis.com env -i git reset —hard env -i git pull origin master exit
Bom, são comandos bash, simples: entra na pasta do meu site, reseta o repositório e faz um pull com as últimas alterações. Esse env -i é um truque que faz os comandos serem executados na pasta que você entrou ali no seu comando bash. Se não houver esse env -i, todos os comandos git que você rodar, vão tentar rodar na pasta fora do seu repositório. Colocando essa flag, isso não vai acontecer.
Por último, você precisa tornar o post-receive um arquivo executável rodando:
chmod +x /home/repositorio/fernandopetry.com.br.git/hooks/post-receive
Referencia:
https://tableless.com.br/deploy-usando-git-pull-e-hooks/
Veja aqui como fazer o deploy em uma hospedagem:
https://tableless.com.br/usando-git-para-atualizar-arquivos-no-servidor-de-hospedagem-ii-final/