Como funciona
Um commit é a unidade básica de histórico no Git. Quando você altera arquivos e executa git commit, o Git cria um snapshot daquele estado, com um identificador único (hash), a data, o autor e uma mensagem descritiva. Esse snapshot fica armazenado no repositório e pode ser recuperado a qualquer momento.
Bons commits são pequenos e focados em uma única mudança lógica. A mensagem deve explicar o porquê da mudança, não apenas o que mudou. Projetos seguem convenções como Conventional Commits, que padronizam prefixos como feat:, fix: e docs:.
Commits formam uma cadeia: cada commit aponta para o anterior, criando um histórico linear ou ramificado. Isso permite voltar no tempo, comparar versões e identificar quando um bug apareceu.
Antes do commit, as mudanças ficam na staging area, onde você seleciona exatamente quais alterações incluir. Boas práticas incluem commits atômicos, mensagens no imperativo e referência a issues quando aplicável. Hooks de pré-commit podem rodar linters e testes automaticamente antes de confirmar o commit.
Reescrever histórico com rebase ou amend exige cuidado em branches compartilhadas, pois pode causar conflitos para outros colaboradores. Commits assinados com GPG aumentam a segurança e a rastreabilidade.
Exemplo prático
Você corrige um bug no cálculo de imposto e ajusta dois arquivos. Em vez de commitar tudo junto com "correções", você cria dois commits: um com "fix: corrige cálculo de imposto para clientes pessoa jurídica" e outro com "test: adiciona teste para o cenário de pessoa jurídica". Assim, o histórico fica claro e fácil de reverter se necessário.
Para que serve
Commits organizam o trabalho e permitem colaboração segura. Em equipes, cada pessoa cria commits em sua branch e envia via pull request para revisão. Ferramentas de CI/CD disparam testes automaticamente a cada commit.
Agentes de IA que programam, como Claude Code e Codex, também criam commits ao finalizar tarefas. No bridgecode, cada agente pode trabalhar em sua própria branch e commitar mudanças isoladas, facilitando a revisão humana antes do merge.