Deploy utilizando git bare

Introdução

Basicamente, um repositório criado com o comando git init --bare, irá criar um repositório sem os commits ou histórico de commits. Outro ponto, interessante é que você só envia os seus commits para esse repositório.

Well, a working repository created with git init is for… working.

A bare repository created with git init --bare is for… sharing.

Criar o repositório bare no servidor de produção

Acesso o seu servidor via ssh

$ ssh iago@server.com
$ mkdir ~/git-deploy/meu-projeto-sensacional
$ git init --bare

Hooks

De maneira bem sucinta, os hooks seriam gatilhos que disparam ações. Na pasta hooks, você verá vários scripts de exemplo. Os mais comuns, são:

  1. post-receive: é executado depois que é recebido a mudança
  2. update: é muito parecido com o 1. pre-receive, mas só é executado uma vez
#!/bin/bashGIT_WORK_TREE=/var/www/html/meu-projeto-sensacional git checkout -f
$ chmod +x post-receive

Adicionar o repositório remoto localmente

Entre no seu repositório local e adicione um novo repositório remoto

$ git remote add prod iago@servidor.com.br:/home/iago/git-deploy/meu-projeto-sensacional
$ git remote add prod iago@[ip do servidor]:/home/iago/git-deploy/meu-projeto-sensacional
$ git push prod

Conclusão

Enfim, eu utilizo repositório criados com o comando git init na minha máquina para desenvolver, fazer merge ou rebase e consultar diff.

Utilizo repositório criados com o comando git init na minha máquina para desenvolver, fazer merge ou rebase e consultar diff — Sobre repositórios simples

Lá, só existe o trabalho “final” — Sobre repositórios bare

Espero sinceramente que o conteúdo deste artigo seja útil para você, assim como foi e está sendo para mim.

--

--

Desenvolvedor e tem um site https://iagofrota.com.br.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store