&quot;I find [the index] a critical part of git&#x27;s culture of making small commits with one logical change each.&quot;<p>I&#x27;ve never understood why the index has to be forced on everyone for every commit.  Apparently it&#x27;s due to a belief that everyone always just munges a bunch of changes together in their working copy in a mad coding frenzy and then later realize they need to filter and separate those changes into separate commits?  That happens to me from time to time, but it&#x27;s not the common case.  When it does happen (since I use mercurial) I can use use tools such as commit --amend, or commit &lt;list of filenames&gt;, or record or crecord to filter and separate the changes in my working copy into separate commits.  I believe even git has some of those same options.