
Por favor, guíeme para saber que el SHA que se crea cuando se crea el objeto de confirmación es el SHA de solo el contenido del archivo o también hay otras entradas para la función HASH, como el autor de la confirmación, la marca de tiempo y la fecha, etc.
Tengo la siguiente confusión en mi 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)?
Respuesta1
Nunca existe una confirmación git
de contenido de archivo puro, por lo que su primera suposición (SHA (contenido del archivo)) nunca es cierta. En realidad, cadaarchivousted registra, se almacena como un objeto yesteEl nombre del objeto es la suma SHA del archivo.
Pero ni siquiera solo registras archivos, se trata de un archivojerarquía. Una jerarquía de archivos se parece a unaobjeto-árbol, que contiene todos los archivos en esta (sub)jerarquía (indicados por su nombre de objeto: SHA-sum), nombre y permisos de los archivos. El nombre de objeto de un archivo de árbol es la suma SHA de este listado. Esto también funciona de forma recursiva, es decir, puedes hacer referencia a objetos de árbol desde objetos de árbol (así es como funcionan los subdirectorios).
tu realcomprometerseconsta de las sumas SHA de (0 o más) confirmaciones principales, el nombre del objeto de árbol que se asemeja al directorio raíz de su repositorio, la fecha de confirmación, el autor de la confirmación, el mensaje de confirmación, etc. El nombre de la confirmación (el "número de revisión") es la suma SHA terminadaestelistado.