--- title: Optimise for revertability date: 2024-05-10 permalink: daily/2024/05/10/optimise-for-revertability tags: - software-development - git cta: ~ snippet: | If you needed to revert a commit in a codebase, could you do so easily? --- 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.