History should be at the keystroke-by-keystroke level, which aggregates into small, focused commits, which aggregates into large merges.
In other words, good written records have layers and organizations. A history book will have chapters, sections, sentences, and footnotes. A database might let me organize my corporate history by day and then by division, or flip it around, and organize by division and then by month.
git his one linear history, which means it is navigable in one way, and you need to pick:
- Complete record of what happened;
- Small, cherry-pickable commits;
- Clean list of when features got merged; or
- Something else
Don't make me pick!