Skip to content

Instantly share code, notes, and snippets.

@JGeovani
Forked from sergiosvieira/fluxo-trabalho-git.md
Last active August 29, 2015 14:21
Show Gist options
  • Save JGeovani/fa672259cf15fd9142e1 to your computer and use it in GitHub Desktop.
Save JGeovani/fa672259cf15fd9142e1 to your computer and use it in GitHub Desktop.
Fluxo de Trabalho no Git
========================
Primeiro crie um branch de desenvolvimento no seu repositório local:
$ git checkout --track origin/development
1. Trabalhe em sua tarefa, continuamente comitando em intervalos regulares para manter
o rastro daquilo que você fez.
$ git checkout -b nome_da_tarefa (Criando o Branch da sua Tarefa)
2. Mantenha o branch local de sua tarefa atualizado com o branch remoto de desenvolvimento
com qualquer atualizações que a equipe fez.
$ git checkout development (Mude para o branch de desenvolvimento)
$ git pull origin development (Atualize o branch de desenvolvimento)
$ git checkout nome_da_tarefa (Mude para o branch da sua tarefa)
$ git rebase development (faça rebase ref: http://git-scm.com/book/pt-br/Ramifica%C3%A7%C3%A3o-Branching-no-Git-Rebasing)
ATENÇÃO: NO ÚLTIMO COMANDO (REBASE) PODE EXISTIR CONFLITOS, VOCÊ PRECISA CORRIGÍ-LOS ANTES DE CONTINUAR COM O REBASE. QUALQUER DÚVIDA FALE COM O SÉRGIO.
3. Uma vez terminada a tarefa, junte todos os pequenos commits em um único commit.
$ git rebase -i development
Quando seu editor abrir combine todos os commits é um único commit. Veja o exemplo abaixo:
Original
========
pick ae3a3dc Adding first part of new feature
pick 3c82ad8 Adding second part
Como deve ficar
===============
pick ae3a3dc Adding first part of new feature
squash 3c82ad8 Adding second part
Atenção: Troque todos os "pick" por "squash" a partir da segunda linha
4. Faça um merge entre o branch de sua tarefa com o branch de desenvolvimento local, depois
faça um push para o branch de desenvolvimento remoto.
$ git checkout development (Mude para o branch de desenvolvimento)
$ git pull origin master (Atualize o branch de desenvolvimento)
$ git merge nome_da_tarefa (Junte as alterações do branch de sua tarefa com o de desenvolvimento)
$ git push origin development (Suba as alterações para o branch de desenvolvimento)
5. Apague o branch local de sua tarefa quando ele não for mais necessário.
$ git branch -d nome_da_tarefa
Liberação de Versão
===================
Uma vez que todas as tarefas do release estiverem prontas, faça o serguinte:
1. Faça um Merge do branch de desenvolvimento com o Master
$ git checkout master
$ git merge development
2. Nomeie o release usando a seguinte notação major.minor.patch
$ git tag 1.0.0
3. Suba suas mudanças
$ git push
$ git push --tags
Encontrou um BUG?
=================
O que acontece se um bug for encontrado no ambiente de produção? Faça o seguinte:
1. Faça as correções diretamente no Master.
$ git checkout master
(..) Faça as Correções (..)
$ git commit -m "Bug Fix: descrição da correção"
2. Nomeie-o como patch de liberação (major.minor.patch)
$ git tag 1.0. <- coloque aqui a versão do patch
$ git push --tags
3. Suba as mudanças para o Master
$ git push origin master
4. Faça um Merge do Master com o de development
$ git checkout Master
$ git merge development
-> Caso ocorram conflitos corríja-os
5. Suba as mudanças para o Development
$ git checkout development
$ git push origin development
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment