Pensé que el índice es solo para los files que organizó para la próxima confirmación, pero tanto el reinicio como el process de compra también actualizan el índice:
git pago y envío
Para prepararse para trabajar, cambie a él actualizando el índice y los files en el tree de trabajo,
git reset
puede cambiar solo HEAD
( git reset --soft
) o HEAD
e index (pnetworkingeterminado), o HEAD
index y working tree ( git reset --hard
). git checkout
puede cambiar el índice solo cuando se cambia de twig, para que pueda empezar a organizar su trabajo en function del contenido de esa twig. Esa discusión señala por qué el pago cambia el índice:
Mi comprensión del índice es que es el intermediario para:
- mover cosas de su tree de trabajo a la tienda de objects
- Y para mover cosas de la tienda de objects a su tree de trabajo.
Por lo tanto, cuando finaliza la compra del blob, primero se copy de la tienda de objects a su índice y luego del índice a su tree de trabajo.
torek menciona en los comentarios algo que refleja otra parte del mismo hilo:
Tenga en count que puede omitir la escritura a través del índice usando
git show
para extraer el file:
git show HEAD~3:file > file
sobrescribirá la versión del
file
de trabajo delfile
, al igual quegit checkout HEAD~3 -- file
, pero no actualizará el índice .
git show
en más detalle en " ¿Cómo recuperar un único file de una revisión específica en Git? ".
Tenga en count también que git-show
no aplica filters al file (borrado / limpieza o cualquier personalizado).
Después de un pago o reinicio limpio, el contenido de HEAD es el mismo que el índice y el contenido del tree de trabajo.
Después, generalmente cambias tu tree de trabajo, luego actualizas el índice usando git add
y finalmente conviertes el índice resultante en un commit usando git commit
.
El índice funciona de manera muy similar a su tree de trabajo: Usted comienza por el contenido actual de la confirmación, cambia algunos files y finalmente hace que el resultado sea un compromiso.
Si cambia su confirmación actual usando git checkout
o git reset
, el índice tiene que cambiar, para permitirle cambiarlo para crear una nueva confirmación.
La idea es que git siempre confiere instantáneas del estado actual y no solo diffs. Por lo tanto, al realizar un pago, el índice se actualizará para contener una instantánea de lo que acaba de retirar, que luego cambiará al agregar files / cambios.
Mi pregunta es porque funcioné bajo la suposition incorrecta de que solo se agregarían cambios al índice.