<p>As I said <a href="/daily/2025/02/10/refactoring">in yesterday's email</a>, sometimes you change your mind whilst working on something.</p>
<p>Maybe you change your approach and have a commit that supersedes an earlier one, fix a typo, or find a bug and need to revert a commit.</p>
<p>If you're pushing your changes to a branch for review, I suggest using <code>git rebase</code> to clean up your commits.</p>
<p>You can squash the typo fix into the commit that introduced the typo, or remove the original implementation that you later moved away from.</p>
<p>Whilst there is an option to squash all the commits when merging, I don't like it and prefer people to tidy their commits before pushing.</p>
<p>This means the commits are easier to review and you can keep the original commit history and all the context within the messages instead of a generic <code>Merge commit..</code> message.</p>
<p>Maybe you change your approach and have a commit that supersedes an earlier one, fix a typo, or find a bug and need to revert a commit.</p>
<p>If you're pushing your changes to a branch for review, I suggest using <code>git rebase</code> to clean up your commits.</p>
<p>You can squash the typo fix into the commit that introduced the typo, or remove the original implementation that you later moved away from.</p>
<p>Whilst there is an option to squash all the commits when merging, I don't like it and prefer people to tidy their commits before pushing.</p>
<p>This means the commits are easier to review and you can keep the original commit history and all the context within the messages instead of a generic <code>Merge commit..</code> message.</p>