🇺🇸 English | ᴘᴛ Português | 🇧🇷 Português
⭐ Se gostou deste repositório, me ajuda contribuindo com uma estrelinha
Este repositório é um guia visual e passo a passo para iniciantes e profissionais entenderem e aplicarem estratégias de branching no Git e GitHub. Inclui definições claras, fluxos de trabalho e exemplos práticos.
| Termo | Descrição breve |
|---|---|
| branch ou branches | Ramo de desenvolvimento independente. |
| commit ou commits | Snapshot de alterações no repositório. |
| pull request ou PR | Proposta de integração de um branch em outro, com revisão. |
| merge ou merges | Ação de combinar alterações de diferentes branches. |
| main | Branch principal e estável (produção). |
| develop | Branch de integração de novas funcionalidades. |
| feature/ | Prefixo para desenvolvimento de novas funcionalidades. |
| bugfix/ | Prefixo para correções de bugs durante o desenvolvimento. |
| hotfix/ | Prefixo para correções críticas em produção. |
| release/ | Prefixo para preparar uma nova versão de software. |
| experiment/ | Prefixo para protótipos e testes sem garantia de merge. |
| squash | Combina múltiplos commits em um único commit. |
| rebase | Reaplica commits de uma branch sobre outra, gerando histórico linear. |
-
Criar Branch
git switch -c feature/nome-da-feature
-
Fazer Commits
git add . && git commit -m "Descrição clara da mudança"
-
Publicar no GitHub
git push -u origin feature/nome-da-feature
-
Abrir Pull Request
- No GitHub, selecione seu branch e clique em New Pull Request.
-
Revisão e Merge
-
Após aprovação, mescle e delete seu branch:
git switch main && git pull git branch -d feature/nome-da-feature git push origin --delete feature/nome-da-feature
-
Cada branch funciona como um espaço isolado para suas alterações. Imagine o histórico do projeto como um tronco de árvore (main), e cada branch é um ramo onde você pode trabalhar sem afetar o tronco.
| Prefixo | Exemplo | Propósito |
|---|---|---|
| main | main |
Código em produção |
| develop | develop |
Integração de novas funcionalidades |
| feature/ | feature/login |
Desenvolvimento de uma nova feature |
| bugfix/ | bugfix/erro-404 |
Correção de bugs |
| hotfix/ | hotfix/patch-1.0.1 |
Correções críticas em produção |
| release/ | release/2.0.0 |
Preparação de versão |
| experiment/ | experiment/a-b-test |
Protótipos e testes |
- Trabalhe sempre a partir de
main. - Crie um branch de feature.
- Faça commits frequentes.
- Publique e abra um PR.
- Após aprovação, mescle em
maine realize o deploy.
gitGraph
git checkout main
commit id:"v1.0.0 deploy"
branch feature/a
checkout feature/a
commit id:"Implementa A"
checkout main
merge feature/a- main: produção
- develop: integração contínua
- feature*: branches criadas de
develop - release*: branches de preparação de versão
- hotfix*: branches de correções urgentes
gitGraph
git checkout -b develop main
commit id:"Início Sprint"
branch feature/b
checkout feature/b
commit id:"Nova funcionalidade B"
checkout develop
merge feature/b
branch release/1.0.0
checkout release/1.0.0
commit id:"Ajustes & Docs"
checkout main
merge release/1.0.0
tag v1.0.0
checkout develop
merge release/1.0.0git switch -c prefixo/nomegit fetch origin
# Rebase para sincronizar com a base
git rebase origin/maingit push -u origin prefixo/nomeNote
Notas de Merge
- Merge Commit: preserva histórico completo. Use para features longas.
- Squash and Merge: consolida commits em um só. Use para simplificar.
- Rebase and Merge: cria histórico linear. Use para commits atômicos.
- feature/: novas funcionalidades.
- bugfix/: correções antes do release.
- hotfix/: correções críticas em produção.
- release/: preparação de versão.
- experiment/: protótipos e testes.
- Use nomes claros e consistentes.
- Faça commits pequenos e descritivos.
- Abra PRs detalhados com contexto.
- Proteja branches: exija revisão antes do merge.
- Delete branches mescladas para manter o repositório limpo.
-
Clone o repositório:
git clone https://github.com/seu-nome-de-usuario/Branches-Complete-Guide4-Repositories.git
-
Siga o Quickstart.
-
Experimente os fluxos de trabalho.
-
Contribua com sugestões via PR ou Issue.
Feito com ❤️ & Markdown por dev-ggomes com a contribuição de LeoSilva91