Boas Práticas e Workflows
Aula 12 de 12
Convenção de Commits (Conventional Commits)
Padrão amplamente adotado para mensagens de commit:
<tipo>(<escopo>): <descrição>
[corpo opcional]
[rodapé opcional]
Tipos Comuns
| Tipo | Uso | Exemplo |
|---|---|---|
feat | Nova funcionalidade | feat: adiciona autenticação OAuth |
fix | Correção de bug | fix: corrige crash ao salvar vazio |
chore | Tarefas de manutenção | chore: atualiza dependências |
docs | Documentação | docs: atualiza README |
refactor | Refatoração | refactor: extrai função de validação |
test | Testes | test: adiciona testes para login |
style | Formatação | style: ajusta indentação |
perf | Performance | perf: otimiza consulta ao banco |
# Exemplos
git commit -m "feat: adiciona endpoint de login"
git commit -m "fix(auth): corrige validação de token expirado"
git commit -m "refactor: extrai lógica de pagamento para serviço"
Workflows de Branch
Git Flow (Clássico)
master ────────●──────────●──────────●
\ / \ /
develop ●──●──● ●──●──●
\ / \ /
feature ●● ●●
Branches: main, develop, feature/*, release/*, hotfix/*
Trunk-based (Moderno)
main ──●──●──●──●──●──●──●──●──
\ /
feature ●──●
Branches: apenas main + branches curtos de feature. Merge frequente.
GitHub Flow (Simples)
main ──●──────────●──────────●
\ / /
feature ●──●──● /
/
bugfix ●──●
.gitignore Templates por Linguagem
| Linguagem | Template |
|---|---|
| Node.js | node_modules/, dist/, .env |
| Python | pycache/, *.pyc, .venv/ |
| Java | *.class, target/, .gradle/ |
| Rust | target/, Cargo.lock |
| Go | *.exe, *.test, vendor/ |
Hooks do Git
Scripts que executam automaticamente em eventos:
# .git/hooks/pre-commit (exemplo)
#!/bin/sh
npm run lint # roda linter antes de commitar
npm run typecheck # verifica tipos
Hooks comuns:
pre-commit: validações antes do commitcommit-msg: valida formato da mensagempre-push: testa antes de enviar
Recomendações Finais
Organização
- Commits atômicos: cada commit = uma mudança lógica
- Branches descritivos:
feat/login,fix/crash-profile,refactor/api - PRs pequenos: máximo ~300 linhas, fácil de revisar
Segurança
- Nunca commitar senhas, tokens ou chaves
- Usar
.env+.env.examplepara configurações git-secretsougitleakspara varrer credenciais.gitignoreconfigurado desde o início
Colaboração
- Commits em português ou inglês? Escolha e mantenha consistência
- Revise código dos colegas com respeito
- Responda reviews em até 24h
- Se algo quebrar, avise o time
Certificação Git — Tópicos Principais
| Domínio | Peso | Tópicos |
|---|---|---|
| Fundamentos | 20% | init, status, add, commit, log, diff |
| Branches | 20% | branch, checkout/switch, merge, rebase |
| Remotos | 20% | clone, remote, push, pull, fetch |
| Colaboração | 20% | PRs, code review, conflitos |
| Avançado | 20% | stash, tag, bisect, reflog, hooks |
Domine esses 12 tópicos e você estará preparado para usar Git profissionalmente e buscar certificações como a Git Certification (miro.com) ou GitHub Foundations.