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