- Primeiro, crie um branch de desenvolvimento no seu repositório local:
$ git checkout --track origin/development
- Trabalhe em sua tarefa normalmente. Lembre-se de fazer commits frequentes para manter o rastro do seu progresso.
$ git checkout -b nome_da_tarefa # Criando o _branch_ da sua tarefa
- Mantenha o branch local de sua tarefa atualizado com o branch remoto de desenvolvimento com quaisquer atualizações que a equipe fizer.
$ 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
ATENÇÃO: O ÚLTIMO COMANDO (REBASE) PODE GERAR CONFLITOS, VOCÊ PRECISARÁ CORRIGÍ-LOS ANTES DE CONTINUAR.
- Uma vez terminada a tarefa, junte todos os pequenos commits em um único commit.
$ git rebase -i development
4.1 Quando seu editor abrir, edite o texto exibido para que todos os textos dos commits estejam unidos em um único commit. Veja o exemplo abaixo:
pick ae3a3dc Adding first part of new feature
pick 3c82ad8 Adding second part
pick ae3a3dc Adding first part of new feature
squash 3c82ad8 Adding second part
ATENÇÃO: Substitua todos os 'pick' por 'squash' a partir da segunda linha.
- Faça um merge do branch da sua tarefa com o branch de desenvolvimento local e, em seguida, 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
- Exclua o branch local de sua tarefa quando ele não for mais necessário.
$ git branch -d nome_da_tarefa
- Faça um merge do branch development com o branch main
$ git checkout main $ git merge development
- Nomeie o release usando a seguinte notação major.minor.patch
$ git tag 1.0.0
- Suba suas alterações
$ git push
$ git push --tags
- Faça as correções diretamente no branch main.
$ git checkout master
(..) Faça as correções necessárias (..)
$ git commit -m "Bug Fix: descrição da correção"
- Nomeie-o como patch de liberação (major.minor.patch)
$ git tag 1.0. # <- coloque aqui a versão do patch
$ git push --tags
- Suba as alterações para o branch main
$ git push origin main
- Faça um merge do branch main com o branch development
$ git checkout development
$ git merge main
ATENÇÃO CASO OCORRAM CONFLITOS AO REALIZAR O MERGE, CORRIJA-OS.
- Suba as alterações para o branch development
$ git checkout development
$ git push origin development
Olá @sergiosvieira, me tira uma dúvida, na linha 96 e 97 não deveria ser:
Pois o que eu quero é trazer a correção do bug para o development.
E não levar todas as alterações do development para o Master.
Estou certo?
SIM, já corrigi, obrigado!