O que é um commit
Commit é um registro de um estado versionado do projeto no Git, acompanhado de mensagem e metadados. Ele referencia a árvore de conteúdo e seus commits pais, permitindo reconstruir o histórico e comparar estados.
O identificador depende do conteúdo do objeto commit, incluindo seus metadados e relações. Recriar uma alteração com outra mensagem ou outro pai produz um registro diferente, mesmo quando os arquivos finais parecem iguais.
O conteúdo preparado determina o registro
No uso habitual, a área de preparação, também chamada de index ou staging area, define o que entrará no próximo commit. O arquivo editado no disco pode conter mudanças adicionais que ainda não foram incluídas nessa área.
Gravar uma edição no arquivo e preparar seu conteúdo para commit são ações diferentes. Depois de preparar um arquivo, uma nova alteração pode deixar parte do conteúdo pronta para registro e outra parte apenas na árvore de trabalho.
Mensagem e histórico ajudam a localizar a mudança
Uma mensagem útil explica a alteração e o motivo que não fica evidente no código. Reunir mudanças relacionadas facilita examinar o resultado sem misturar uma correção de comportamento com várias edições independentes.
O histórico não é necessariamente uma sequência com um único antecessor por registro. Commits de merge relacionam linhas de desenvolvimento, enquanto o primeiro commit de um histórico não possui pai.
Registrar, enviar e publicar
Criar um commit normalmente altera o repositório local. O envio ao remoto compartilha os objetos e atualiza referências conforme o comando e as permissões, sem instalar necessariamente a aplicação em produção.
Uma automação pode reagir ao envio e iniciar testes ou deploy, mas esse comportamento pertence à configuração do projeto. A existência do commit não comprova execução dessas etapas nem aprovação de seu conteúdo.
Conferir o estado que ficará no histórico
Leia a comparação de arquivos preparada para registro e confira itens ausentes ou incluídos por engano. Depois do commit, consulte o estado preservado e relacione-o aos resultados dos testes.
Reverter uma alteração também precisa considerar seu alcance. Uma mudança de código registrada no Git pode ter produzido efeitos no banco ou em serviços externos que não são desfeitos apenas pela alteração dos arquivos.
Dúvidas frequentes
Perguntas frequentes sobre Commit
- Um commit guarda apenas as linhas modificadas?
- O commit referencia uma árvore que representa o estado versionado. As diferenças aparecem quando esse estado é comparado com outro, como o de seu commit pai.
- Todo commit tem exatamente um anterior?
- Não. Um commit inicial não tem pais, um commit comum tem um e um commit de merge pode ter mais de um. Essa relação forma o histórico do Git.
- Gravar o arquivo no editor depois de git add atualiza o próximo commit?
- Não automaticamente. A área de preparação mantém o conteúdo preparado naquele momento. Edições posteriores precisam ser incluídas novamente quando devem fazer parte do commit.
- Criar um commit publica a aplicação?
- Não por si só. O commit registra um estado no repositório. Envio ao remoto e deploy são ações distintas, embora uma automação possa reagir a determinados eventos.
Para continuar
Recursos relacionados
Documentação
Git: criação de commits
Registro do conteúdo preparado e metadados do commit.
Abrir recursoDocumentação
Git: representação de branches
Referências móveis, commits e histórico compartilhado.
Abrir recursoDocumentação
Git: comparação de estados
Comparações entre arquivos, área de preparação e commits.
Abrir recursoAplicação na formação
Developer Workspace
O commit registra uma versão no histórico do repositório para que as alterações possam ser consultadas e comparadas.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.