2012-08-27 10 views
15

El libro Pro Git dice que el área de ensayo era solo una lista, o índice, que indica qué archivos se enviarán cuando se realiza un git commit, y ahora el nombre index se conoce más comúnmente como el "área de ensayo".¿El área de preparación de Git es solo un índice?

Pero si se modifica el archivo foo.txt que ya es parte de la cesión temporal, y usamos git add foo.txt a ponerla en escena, y modificar el archivo de nuevo, ahora el archivo es tanto "puesta en escena" y "modificado" (como se ve en git status) , y si nos comprometemos, la versión "escalonada" irá a la confirmación. La segunda edición no entrará.

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

Respuesta

10

El índice es una vista de su directorio de trabajo que está listo para la confirmación. Se puede ver como un estado previo a la confirmación y no es tan simple como una "lista de archivos". Cuando lo haga git add, el archivo (con el cambio) se agrega al índice y los cambios más nuevos no se verán hasta que los agregue también.

3

index es como fuera cesta del trabajo terminado. En cualquier punto puede add un archivo (completado) en ese canasta y reemplazará la copia anterior con su copia actual, de modo que cuando finalmente decida commit utilizará el contenido de esa cesta (el actual index) para crear el compromiso.

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

+0

Me gustó su ejemplo con la ** cesta de salida ** pero no mencionó cómo eso relacionado con la puesta en escena –

+1

@EthanDavis the Staging son, en su mayor parte, idénticos al índice. La diferencia es más de perspectiva. El área de preparación es una vista conceptual para el usuario, mientras que Index es más un punto de vista de desarrollador de Git (donde guardan las listas de lo que está en el 'área de preparación'). Git tiene muchas cosas nombradas por (y para) los desarrolladores, que luego son malinterpretadas por los usuarios ;-) –

Cuestiones relacionadas