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

Pull Requests e Colaboração

Aula 9 de 12

O que é um Pull Request?

Pull Request (PR) / Merge Request é uma proposta de alteração. Permite revisar código antes de integrá-lo ao branch principal.

Fluxo Básico com GitHub

1. Criar branch → 2. Commits → 3. Push → 4. Abrir PR → 5. Revisão → 6. Merge

Passo a Passo

# 1. Criar branch para a funcionalidade
git switch -c feat/nova-funcionalidade

# 2. Commits atômicos
git add .
git commit -m "feat: adiciona funcionalidade X"

# 3. Enviar para o remoto
git push -u origin feat/nova-funcionalidade

Boas Práticas para PRs

Tamanho

  • PRs pequenos e focados são mais fáceis de revisar
  • Ideal: 1 PR = 1 funcionalidade ou correção
  • Máximo recomendado: ~300 linhas alteradas

Título e Descrição

## O que muda?
Implementa autenticação JWT com refresh token.

## Tipo de mudança
- [ ] Bug fix
- [x] Nova feature
- [ ] Refactor
- [ ] Documentação

## Como testar?
1. Faça POST /auth/login com {email, senha}
2. Receba access + refresh token
3. Use refresh token para renovar access

## Checklist
- [x] Testes unitários
- [x] Testes de integração
- [x] Documentação atualizada

Revisão de Código

O que avaliar em um PR:

  • Lógica: está correta? Cobre edge cases?
  • Legibilidade: o código é claro? Precisa de comentários?
  • Segurança: há vulnerabilidades potenciais?
  • Performance: há gargalos?
  • Testes: cobre os cenários principais?

Code Review Etiqueta

Para o autor:

  • Responda a comentários com educação
  • Explique decisões técnicas quando questionado
  • Mantenha o PR atualizado com a main
  • Não force push depois de reviews iniciados

Para o revisor:

  • Seja construtivo, não crítico
  • Pergunte "o que você acha de...?" em vez de "está errado"
  • Separe opinião pessoal de padrão objetivo
  • Aprove rapidamente PRs pequenos e óbvios

Tipos de Merge no GitHub

OpçãoEfeitoQuando usar
Create merge commitCommit de merge (--no-ff)Padrão, preserva histórico
Squash and mergeTodos os commits viram umPRs com commits bagunçados
Rebase and mergeRebase + fast-forwardHistórico linear

Um bom PR conta uma história: título claro, descrição completa, commits organizados.