git add. , donde se almacenan estos files?

Estoy aprendiendo git basics. Tengo cierta confusión sobre la comprensión de lo siguiente.

Si agrega files a git como git add <filename(s)> , ¿los agregará en .git/index o en algún otro lugar? ¿Cómo sabe Git algunos files agregados (rastreados o no, etc.)? ¿De dónde obtendrá esa información (antes de la confirmación)?

Cuando git commit o git add, el tamaño del file .git/index aumenta.

¿Podemos llamar .git/index como el repository local git? o es la database principal de git?

.git/HEAD solo apunta a la twig actual o almacena los files después de la confirmación?

¿Alguien podría iluminarme?

Si agrega un file a Git, creará un blob de ese file en el directory .git / objects. Además, se creará una input en el file .git / index con la ruta del file, los permissions y el hash del blob. La razón por la que el tamaño del file de índice no aumenta, podría ser que ya tenía una input para ese file, o tenía otra input que se volvió obsoleta y se reemplazó por la nueva input.

.git / index es el índice de Git, .git es el repository local. HEAD es solo una reference, como ya habrás notado.

Git tiene un área de preparación (también conocida como: escondite, índice, caching depende de su versión de git)

enter image description here

Cuando agrega files, simplemente le dice a git que los rastree a partir de este punto. Una vez que los agregue, calcule el SHA-1 de los files y se almacenan en su carpeta .git/object en un formatting especial (TIPO LONGITUD + contenido – en formatting zip)

Aquí puede encontrar información muy útil sobre todo el procedimiento.