Um bom workflow de Git não é sobre regras — é sobre comunicação. A árvore de commits deve contar a história do projeto.
Commits atômicos
Cada commit deve representar uma mudança lógica:
feat: add user avatar upload
fix: correct pagination offset on search
refactor: extract image processing to service
Use conventional commits para comunicação uniforme. O diff fica pequeno, a revisão fica rápida, o git bisect funciona.
Branch strategy
Trunk-based (recomendado)
mainsempre deployável- Branches curtas (1-2 dias)
- Merge frequente
main ──●──●──●──●──●──●──●
\ /
feature ●──●
Git Flow (para releases versionadas)
main+develop+release/*+hotfix/*- Mais overhead, necessário para software empacotado
Dicas
- Rebase antes de merge: mantém história linear
- Não force push em branches compartilhadas: a não ser que o time combine
git commit --fixup: para correções rápidas sem poluir a história
O melhor workflow é o que seu time segue consistentemente, não o que está na moda. Consistência > perfeição.