kb.erickguedes.com
Git Completo: do Básico à Certificação

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

TipoUsoExemplo
featNova funcionalidadefeat: adiciona autenticação OAuth
fixCorreção de bugfix: corrige crash ao salvar vazio
choreTarefas de manutençãochore: atualiza dependências
docsDocumentaçãodocs: atualiza README
refactorRefatoraçãorefactor: extrai função de validação
testTestestest: adiciona testes para login
styleFormataçãostyle: ajusta indentação
perfPerformanceperf: 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

LinguagemTemplate
Node.jsnode_modules/, dist/, .env
Pythonpycache/, *.pyc, .venv/
Java*.class, target/, .gradle/
Rusttarget/, 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 commit
  • commit-msg: valida formato da mensagem
  • pre-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.example para configurações
  • git-secrets ou gitleaks para varrer credenciais
  • .gitignore configurado 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ínioPesoTópicos
Fundamentos20%init, status, add, commit, log, diff
Branches20%branch, checkout/switch, merge, rebase
Remotos20%clone, remote, push, pull, fetch
Colaboração20%PRs, code review, conflitos
Avançado20%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.