Trying to help
One of the things I’ve liked about git is how much it encourages responsible and clean commits. Personally, I’m not there yet. I commit when I think to, usually when I’m at a reasonable stopping point, which means I just end up doing
git commit -a rather than adding and committing clean groups of related changes.
Because of this, when I submitted a pull request to the awesome Pandoc, my commit history was a mess. The owner of the project, John MacFarlane, reasonably asked to to separate things into nice clean commits. Embarrassingly, I’d never done this before, but everything went a bit smoother than expected.
git rebase command allows you to rewrite the commit history of your project. There are lots of ways to do this, but I found the easiest to be:
git rebase -i HEAD~10
Which will allow you to edit the ten most recent commits.
The git documentation describes how to use this, but I had trouble using the
squash option and just ended up
editing them all.
As mentioned there,
git reset HEAD^ resets the staged commit and then you’re free to commit as you wish before using
git rebase --continue to move forward.