O grafo do histórico: parent, hash e o DAG
Na aula passada vimos que cada commit é um snapshot — uma foto completa do projeto. Agora vamos perguntar: como essas fotos se conectam entre si? Cada commit carrega um pequeno 'bilhete' que aponta para o commit anterior a ele — o parent. Encadear esses bilhetes forma um grafo que flui em uma única
Cada foto (commit) carrega um bilhete: 'eu vim logo depois daquela foto ali'. Esses bilhetes encadeiam as fotos em um mapa de mão única. E cada foto tem uma impressão digital única — mude qualquer coisa, e a impressão digital muda.
- parent (pai)
- O ponteiro de um commit para o commit que veio antes dele. O encadeamento dos ponteiros parent é o que forma o histórico.
- DAG (grafo dirigido acíclico)
- A forma do histórico do Git: cada commit aponta para trás, para o seu parent, e esse encadeamento forma um grafo que flui em uma única direção, sem ciclos.
- hash (identificador SHA)
- Uma impressão digital única de tamanho fixo, derivada do conteúdo do commit (incluindo o parent). Mude até um único caractere — e o hash muda.
- commit raiz (root)
- O primeiro commit do repositório. É o único que não tem parent — o ponto de partida do grafo.
- metadados (metadata)
- As informações que acompanham um commit: quem escreveu, quando, e a mensagem (commit message). Elas também entram no cálculo do hash.