Какое значение имеет индекс файл ? Все, что важно, это то, какая версия каких файлов она перечисляет . Вы можете узнать это с помощью ls-files
.
Пример:
$ git init
$ echo "howdy" > howdy.txt
$ git add .
$ git commit -m "root"
$ echo "bonjour" >> howdy.txt
$ echo "byebye" > byebye.txt
$ git add .
$ git commit -m "first"
$ git ls-files --stage
100644 3abe061d90cd975b4bef1fa702caec7c0f320b29 0 byebye.txt
100644 e1f6537eb149ccead2e53cbf2da40291c07d904a 0 howdy.txt
ОК, так что это «содержимое» индекса. Теперь давайте внесем изменения и новый коммит:
$ echo "extra line" >> howdy.txt
$ git add .
$ git commit -m "second"
$ git ls-files --stage
100644 3abe061d90cd975b4bef1fa702caec7c0f320b29 0 byebye.txt
100644 1ad49f2d780a4b46f68dd9bb1571c65ffc1dc660 0 howdy.txt
А теперь давайте сбросим:
$ git reset --hard HEAD^
$ git ls-files --stage
100644 3abe061d90cd975b4bef1fa702caec7c0f320b29 0 byebye.txt
100644 e1f6537eb149ccead2e53cbf2da40291c07d904a 0 howdy.txt
Как видите, индекс «идентичен» тому, что был в единственный смысл, который имеет значение.