Skip to content

Instantly share code, notes, and snippets.

@sergiosvieira
Last active January 31, 2024 01:13
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 16 You must be signed in to fork a gist
  • Save sergiosvieira/8dcd5f43ba822b7cd5b7 to your computer and use it in GitHub Desktop.
Save sergiosvieira/8dcd5f43ba822b7cd5b7 to your computer and use it in GitHub Desktop.
Fluxo de Trabalho Utilizando Git para Pequenas Equipes

Fluxo de Trabalho do Git para Pequenas Equipes

  1. Primeiro, crie um branch de desenvolvimento no seu repositório local:
$ git checkout --track origin/development
  1. 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
  1. 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

Explicação sobre Git Rebase

ATENÇÃO: O ÚLTIMO COMANDO (REBASE) PODE GERAR CONFLITOS, VOCÊ PRECISARÁ CORRIGÍ-LOS ANTES DE CONTINUAR.

  1. 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:

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: Substitua todos os 'pick' por 'squash' a partir da segunda linha.

  1. 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
  1. Exclua 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 development com o branch main

$ git checkout main $ git merge development

  1. Nomeie o release usando a seguinte notação major.minor.patch
$ git tag 1.0.0
  1. Suba suas alterações
$ 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 branch main.
$ git checkout master

(..) Faça as correções necessárias (..)

$ git commit -m "Bug Fix: descrição da correção"
  1. Nomeie-o como patch de liberação (major.minor.patch)
$ git tag 1.0.  # <- coloque aqui a versão do patch
$ git push --tags
  1. Suba as alterações para o branch main
$ git push origin main
  1. 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.

  1. Suba as alterações para o branch development
$ git checkout development
$ git push origin development
@marcelovsantos
Copy link

marcelovsantos commented Jun 7, 2016

Olá @sergiosvieira, me tira uma dúvida, na linha 96 e 97 não deveria ser:

$ git checkout development
$ git merge Master

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!

@newerton
Copy link

newerton commented Mar 8, 2019

Olá @sergiosvieira, me tira uma dúvida, na linha 96 e 97 não deveria ser:

$ git checkout development
$ git merge Master

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?

Foi o que eu identifiquei também.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment