@Afolabi Adedayo Thanks for your comment. Yes, I understand that. But my question is the following. Suppose that I have only added one file, foo, to the cache, by doing git add foo. I fully understand why it needs to run diff old_foo foo. But why does it need to do any comparison at all on all of the other files in the repo? Aren't all the other files in the repo irrelevant when I am only committing foo?