Lição 3: Git em Equipa — Semantic Commits, PRs e Proteção de Branch
Um histórico de Git como: `fix`, `fix2`, `final`, `final-final` — isso não é Git. O Git é uma ferramenta que documenta o histórico das suas decisões. Quando o histórico é legível, depuração, onboarding e rollbacks passam a levar 2 minutos em vez de 2 horas.
Um semantic commit é como um bom nome de ficheiro — `projeto-v2-FINAL-use-este-aqui.docx` não ajuda ninguém. `feat(auth): add login with Google` — todo mundo sabe do que se trata.
- semantic commit
- Um formato de commit que descreve o tipo de mudança (feat/fix/docs...) e o escopo de impacto (auth/db/ui...) antes da descrição.
- branch protection
- Configurações do GitHub que impedem push direto para `main` — exigindo um PR, review e CI verde antes do merge.
- trunk-based development
- Uma estratégia de branching em que feature branches são de curta duração (menos de um dia) e mescladas à `main` com frequência — reduzindo merge conflicts.