Published on July 13, 2012
Your repository has two commits:
$ git log --oneline
957fbfb No, I am your father.
9bb71ff A long time ago in a galaxy far, far away....
Use the interactive rebase tool to squash the two commits:
$ git rebase -i 9bb71ff
When your editor opens, only a single commit is listed:
pick 957fbfb No, I am your father.
You change pick
to squash
, save & close your editor.
Git complains…
Cannot 'squash' without a previous commit
$ git rebase -i 9bb71ff
This time, when your editor opens, change pick
to edit
instead of squash
, save & close your editor.
$ git reset --soft HEAD^
$ git commit --amend
Your editor again so that you can modify the commit message of the soon-to-be squashed commit; make your changes, save & close the editor.
$ git rebase --continue