leitura de
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

Hoje vou mostrar pra vocês como é extramente simples realizar deploys de sites de forma segura, fail-safe e rápida utilizando Git com alguns poucos comandos na linha de comando.

Este artigo é uma “tradução” (com algumas modificações) do artigo “Using Git to manage a web site”, escrito por Abhijit Menon-Sen. Estou apenas trazendo a idéia geral do autor e explicando o passo-a-passo com o meu ponto de vista.

Não vou entrar no mérito de explicar o conceito de repositórios distribuídos ou as vantagens do Git. Pra quem não conhece a ferramenta, recomendo: esse post e esse screencast (vale o preço).

Repositório local

Se você já possui um repositório local, pule para o pŕoximo passo.

Tudo começa com a criação de um repositório Git simples:

Agora que seu repositório local está pronto, o index.html foi criado e o primeiro commit feito, vamos criar o repositório remoto no ambiente de produção (servidor onde o site está/vai rodar).

Repositório remoto

Partindo do princípio que o seu site vai rodar em um servidor que você possui acesso SSH facilitado, vamos criar o repositório lá que será uma cópia do servidor local:

Agora começa a parte interessante.. Você acabou de criar um repositório bare!

Um repositório bare é um repositório que tem apenas os arquivos versionados, mas não inclui a pasta .git e todos os arquivos de informações e configurações do repositório. Não é um working copy directory.

Agora vamos começar a criar o git-hook que será responsável por copiar todos os arquivos - do repositório bare - para a pasta onde o site vai rodar, no ambiente de produção:

O git-hook post-receive será ativado sempre que o seu repositório receber atualizações (que você enviará da sua máquina) e executará os commandos que você definiu.

Veja que primeiro definimos a variável de ambiente GIT_WORK_TREE como a raíz do site e depois executamos um git checkout -f que irá mover os arquivos sem nenhum vestígio do seu repositório Git.

Agora é só voltar para a sua máquina e adicionar o repositório remoto:

Esses dois comandos irão adicionar o repositório externo ao repositório local e enviar os arquivos locais para o servidor.

Após os dois comandos o servidor vai conter uma cópia dos arquivos locais.

Atualizando os arquivos

À medida que você for trabalhando no site e quiser atualizar o servidor no ar, é so rodar o comando (após fazer o commit):

Isso irá enviar as modificações feitas para o repositório remoto.

Finalizando…

Agora você consegue atualizar o seu site no servidor de produção sem abrir FTP, sem abrir arquivos ou arrastar pastas pelo cliente de FTP… Sem nem abrir o SSH e fazer algo parecido.

É só rodar o git push web e tá tudo certo! :)

Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo