git git-index

¿Es el área de puesta en escena Git sólo un índice?



git-index (3)

El índice es una vista de su directorio de trabajo que está listo para el compromiso. Puede verse como un estado de pre-confirmación y no es tan simple como una "lista de archivos". Cuando git add , el archivo (con el cambio) se agrega al índice y los cambios más recientes no se verán hasta que usted también los agregue.

El libro Pro Git dice que el área de preparación era solo una lista, o índice, que dice qué archivos se confirmarán cuando se realice una git commit , y ahora el index nombres se conoce más comúnmente como "área de preparación".

Pero si modificamos el archivo foo.txt que ya forma parte del repositorio, y usamos git add foo.txt para git add foo.txt , y modificamos el archivo nuevamente, ahora el archivo está "en etapas" y "modificado" (como se ve en git status ), y si nos comprometemos, la versión "puesta en escena" entrará en el commit. La segunda edición no entrará.

Entonces, ¿cómo puede el "área de preparación" hacer un seguimiento de lo que fue la primera edición si es solo un índice, una lista de archivos?


El index es como una canasta de trabajos terminados. En cualquier momento, puede add un archivo completado (parte) a esa canasta y reemplazará la copia anterior con su copia actual, de modo que cuando finalmente decida commit , usará el contenido de esa canasta (el index actual) para crear el commit.

Además, su add anterior tendrá que crear un objeto blob dentro del repositorio que se puede encontrar si es necesario a través de los distintos registros. Después de un tiempo (30 días +) desaparecerá con gc .