Criação do índice do objeto commit no git?

Criação do índice do objeto commit no git?

Por favor, me oriente que o SHA que é criado quando o objeto de commit é criado é o SHA apenas do conteúdo do arquivo ou há outras entradas também para a função HASH, como autor do commit, carimbo de data e hora e data, etc.?

Eu tenho a seguinte confusão em minha mente

commit object's index=SHA(Contents of file)?
             OR
commit object's index=SHA(Contents of file+author of commit+date of the day+time of the day)?

Responder1

Nunca existe um commit gitde conteúdo puro do arquivo, portanto, sua primeira suposição (SHA (conteúdo do arquivo)) nunca é verdadeira. Na verdade, cadaarquivovocê faz check-in, é armazenado como um objeto eesseo nome do objeto é a soma SHA do arquivo.

Mas você nem mesmo faz check-in de arquivos, trata-se de um arquivohierarquia. Uma hierarquia de arquivos é semelhante a umobjeto-árvore, que contém todos os arquivos nesta (sub)hierarquia (indicados pelo nome do objeto - soma SHA), nome e permissões dos arquivos. O nome do objeto de um arquivo em árvore é a soma SHA desta listagem. Isso também funciona recursivamente, ou seja, você pode fazer referência a objetos-árvore a partir de objetos-árvore (é assim que os subdiretórios funcionam).

Seu realcomprometer-seconsiste nas somas SHA de (0 ou mais) commits pais, o nome do objeto-árvore semelhante ao diretório raiz do seu repositório, data do commit, autor do commit, mensagem do commit, etc. O nome do commit (o "número de revisão") é a soma SHA acabouesselistagem.

informação relacionada