Boas práticas
Commits atômicos
Commite alterações não relacionadas separadamente, para que cada commit seja uma unidade lógica de trabalho. Essa abordagem facilita entender o histórico de alterações e revertê-las se for preciso.
Um commit é atômico quando não dá mais para dividi-lo.
Ruim
1a2b3c
2025-04-20 10:00Alex Shvets
Adicionada funcionalidade de cupons (e corrigidos links nos templates de notificação por email) (ah, e refatorado o agendador de emails).
Bom
1a2b3c
2025-04-20 10:00Alex Shvets
Adicionada funcionalidade de cupons.
9f5110
2025-04-20 11:00Alex Shvets
Corrigidos links nos templates de notificação por email.
bbc129
2025-04-20 11:15Alex Shvets
Refatorado o agendador de emails.
Vantagens
- Mais fácil de entender: Commits atômicos focam em uma única alteração lógica, o que facilita para outras pessoas (e para o seu eu do futuro) entender o propósito e o impacto de cada commit.
- Depuração simplificada: Quando um bug aparece, commits atômicos facilitam localizar o commit exato que causou o problema, já que cada commit é uma alteração autocontida.
- Colaboração melhor: Commits atômicos facilitam que colegas de equipe revisem alterações específicas e deem feedback sobre elas, já que cada commit foca em uma única tarefa ou correção.
- Histórico mais limpo: Mantendo os commits atômicos, o histórico do projeto fica limpo e organizado, o que facilita navegar e entender a evolução da sua base de código.
- Reversões mais fáceis: Se uma alteração específica precisar ser revertida, commits atômicos permitem fazer isso sem afetar outras alterações não relacionadas, minimizando o risco de introduzir novos problemas.
- Cherry-picks mais fáceis: Commits atômicos facilitam dar cherry-pick em alterações específicas entre branches, já que cada commit representa uma unidade de trabalho autocontida.
Armadilhas
Commits atômicos podem sair pela culatra de algumas formas se usados em excesso:
- Granularidade excessiva: Quebrar demais as alterações pode gerar uma quantidade enorme de commits minúsculos, difíceis de acompanhar e de entender.
- Perda de contexto: Ao focar em alterações pequenas e isoladas, a visão geral e o contexto da feature ou correção como um todo podem se perder.
- Mais trabalho extra: Fazer muitos commits pequenos exige mais tempo commitando, dando push e, possivelmente, abrindo vários pull requests.
- Dificuldade para reverter: Se uma feature exige vários commits atômicos e for preciso voltar atrás, pode ser mais difícil reverter tudo de forma limpa.
- Legibilidade reduzida: A história completa de uma alteração pode ficar espalhada por muitos commits, o que dificulta que outros desenvolvedores a entendam lendo o histórico.
O segredo é encontrar o equilíbrio — mantenha os commits focados e digeríveis, mas não tão granulares que percam o sentido e fiquem difíceis de gerenciar. O objetivo são commits lógicos e autocontidos.
Primeiros passos
Conceitos principais
Comandos Git
Noções básicas
git initgit addgit commitgit helpTrabalho com branches
git branchgit switchgit mergegit rebaseStatus/histórico
git statusgit loggit diffgit showgit blamegit reflogDesfazendo alterações
git resetgit restoregit revertgit cleangit stashRepositórios remotos
git clonegit fetchgit pullgit pushgit remoteOutros
Arquivo .gitignoregit checkoutgit configgit taggit worktreeMandou bem!
Você desbloqueou todas as entradas da Gitopedia!