Easier Atomic Commits
Problem
As a practitioner of good source control, you and your team have decided to make all of your git commits atomic within your projects. That is, every commit has a green test suite, and you prefer small, incremental commits to large, monolithic ones. Keeping commits small and atomic has tons of benefits, from more consistent continuous integration results, to better team cohesion (have you ever gotten upset with another team member for committing red?). But in practice, keeping all of your commits atomic can present some challenges.
After doing a bunch of work, making incremental, atomic commits along
the way, it's time to push your work up. However, when you run git pull
--rebase, you find that another team member has made changes since you
last pushed. Your commits are now sitting on top of a different git
history. Are all of your commits still atomic? Short of checking out
every single commit and running the suite, how can you be certain that
every commit is atomic? What a pain! I don't want to check out every
commit by hand.