TLDR: Visit the git-commit-ectomy guide: http://pages.charlesreid1.com/git-commit-ectomy
Consider the following completely hypothetical scenario.
Suppose you've been working for a while on your latest invention, a brand-new whiz-bang command line tool that's fast and solves an important problem and you're chugging your way to the finish line.
As part of preparing to release your software tool, you add some tests, because that's what you do.
Those tests require some data, so you add a few test data sets, a few hundred kilobytes each, nothing fancy.
Then one day, the intern (who is just trying to be helpful by …