Optimise for revertability

There are two things I avoid when merging changes in Git.

Merge commits and squashing commits.

Both make it hard to revert changes if needed once they've been merged, such as a major bug in production and you quickly need to roll back.

Merge commits are difficult to revert and if a commit has been squashed into one larger commit, you can't revert it without also reverting everything else.

Working with small, unsquashed commits makes it simple to revert a specific one and only that one.

If I need to revert something, I want to be able to do as simply and specifically as possible.

Optimise for revertability.