Индекс Git - это место, где файлы размещаются для фиксации;взгляните на этот StackOverflow ответ для получения дополнительной информации.Когда вы готовите файлы для фиксации, индекс отражает самую последнюю поэтапную информацию.Повторная установка файла изменит индекс Git, чтобы отразить содержимое файла в рабочем каталоге.
Однако после некоторой дополнительной работы вы сможете увидеть содержимое файла таким, каким оно было для каждого этапа.Вы можете использовать git ls-files
после каждого этапа, чтобы получить список файлов blobs , которые затем можно использовать позже для сравнения с помощью diff
или другого инструмента различий.
Вот небольшой пример сеанса в качестве примера.
$ git init
Initialized empty Git repository in /home/user/tmp/.git/
$ echo "foo" > foo
$ git add foo
$ git ls-files --stage
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 foo
$ echo "bar" > foo
$ git add foo
$ git ls-files --stage
100644 5716ca5987cbf97d6bb54920bea6adde242d87e6 0 foo
$ git cat-file blob 257cc56 > foo.257cc56
$ git cat-file blob 5716ca5 > foo.5716ca5
$ diff foo.257cc56 foo.5716ca5
1c1
< foo
---
> bar
Но это большая работа, требующая тщательного планирования и хранения значений хэша больших двоичных объектов.