Aqui estão as etapas simples necessárias para criar uma implantação do repositório GIT local para um servidor.
- Saiba como usar GIT, Terminal, etc.
- Prepare uma cópia local de trabalho
- Tenha acesso SSH ao seu servidor usando chave private/public
- Crie uma pasta para implantar no servidor de produção (ou seja, sua pasta www | htdocs | pubic_html | public)
- Inclua um repositório 'bare' (vazio) no servidor de produção
- Adicione o script de hooks/post-receive ao repositório bare (e torne-o executável)
- Adicione o repositório remoto localizado no servidor de produção ao seu repositório local
- Envie para o servidor de produção e relaxe.
Suponhamos que estamos trabalhando no master - mas você pode trabalhar em qualquer branch.
ssh no seu servidor de produção:
$ ssh [email protected]
$ mkdir ~/public
Agora criamos um repositório "bare" - um que não contém os arquivos da cópia de trabalho. Basicamente, é o conteúdo da pasta do repositório .git em uma cópia de trabalho normal. Nomeie como quiser, você também pode omitir a parte .git de project.git ou deixá-la para criar o repositório em uma pasta vazia existente:
$ git init --bare ~/project.git
Esse script é executado quando o envio da máquina local é concluído e move os arquivos no lugar. Ele reside em project.git/hooks/ e é chamado de 'post-receive'. Você pode usar o vim para editá-lo e criá-lo. O script verifica se a ramificação correta foi enviada por push (não implementando uma ramificação de desenvolvimento, por exemplo). Você pode baixar um exemplo de script post-receive abaixo. Além disso, não esqueça de adicionar permissões de execução ao referido script;
chmod +x post-receive
Agora, adicionamos esse repositório simples ao seu sistema local como um repositório remoto. Onde "production" é o nome que você deseja atribuir ao repositório remoto. Isso também é chamado de "staging" ou "live" ou "test" etc., se você deseja implantar em um sistema diferente ou em vários sistemas.
$ cd ~/path/to/working-copy/
$ git remote add production [email protected]:project.git
Verifique se "project.git" corresponde ao nome que você deu na etapa 3. Se você estiver usando o Tower ou um aplicativo semelhante, verá os recém-adicionados remotamente na barra lateral em "Remotes" ou liste seus repositórios remotos.
$ git remote -v
Agora você pode enviar a ramificação principal para o servidor de produção:
$ git push production master
Se você estiver usando a torre, poderá arrastar e soltar a ramificação principal no novo reposotório remoto de produção. É isso aí. Tem dúvidas, melhorias?
Se você está procurando fazer implantação no mesmo servidor, mas com branch diferente (production/sandbox)