tl;dr:"Every commit should make sense by itself. There is a just right size for commits, where there is nothing to add and nothing to remove. We want to add / remove / change exactly one thing in each commit." If you are struggling, that's a sign your commit is not well scoped. Robin discusses techniques, how to leverage interactive rebasing, and more.