&gt; I often don&#x27;t want to record my development history in the master branch because it&#x27;s messy. Instead I squash my work into a single cohesive commit<p>personally i rebase my commits into fewer ones so the result is a reasonable compromise between how-the-code-actually-evolved (which is messy, true) and a clear, simple progression from start to completion of the feature (one single commit if taken to the extreme).<p>&gt; I can say &quot;hey Joe, you broke the frobber when you implemented the new gizmo.&quot;
that breaks if joe is not available anymore or the change is complex (or old) enough that the detailed history would help debugging, but joe doesn&#x27;t have the branch lying around anymore because he deleted it or switched machines etc.<p>There are certainly advantages to a single commit per feature :) I just think having more information available through more commits is a good thing, and i don&#x27;t see large disadvantages of having larger amounts of commits, provided you really do squash those &quot;fix last commit&quot; commits etc. to keep the commit count reasonable.