git commitしてもindexは更新されない

てっきり普段はindexは空で、git addすると追加されて、commitするとその中身がコミットオブジェクトに移されてindexはまた空っぽになるんだと思ってた。メンタルモデルが間違っていた。

下のようなスクリプトを書いて、gitでの操作のたびに何が変更されたか確認できるようにして遊んでいたんだけど、commitしてもindexは変更されない。このスクリプトで補足できてないだけかと思ってhexdump .git/index | diff - old_indexしても変化なし。

f$ git add diveintogit.py
f$ python diveintogit.py -d
branches: no change
tags: no change
objs:
  +: ('0079cc66b9e7c929ee290b5a2d8be4ce690df461', 'blob')
index:
  +: ('0079cc66b9e7c929ee290b5a2d8be4ce690df461', 'diveintogit.py', 14, 0)
  -: ('e72cd0938c21cc40c807a8e922e6699022c16773', 'diveintogit.py', 14, 0)


f$ git commit -m "hoge"
[foo 263cb20] hoge
 1 files changed, 1 insertions(+), 2 deletions(-)
f$ python diveintogit.py -d
HEAD: changed
  from: 540f4387b4aa3206820c93bf071930d12d7ae888
  to:   263cb20e15e3de4ad5f658a7efead9de486c5149
branches:
  +: ('263cb20e15e3de4ad5f658a7efead9de486c5149', 'foo')
  -: ('540f4387b4aa3206820c93bf071930d12d7ae888', 'foo')
tags: no change
objs:
  +: ('ac0feedd01ee381d50962307d59e71e3e9065788', 'tree')
  +: ('263cb20e15e3de4ad5f658a7efead9de486c5149', 'commit')
index: no change

https://gist.github.com/939429

API Reference — GitPython v0.3.1 documentation
API Reference — GitDB v0.5.1 documentation