Since asking my last question which turned out to be about rebasing with GIT, I have decided that I don\'t want to rebase at all. Instead I want to:
The easiest thing to do is a soft reset.
So checkout your topic branch:
git checkout -b topic master
work, work, work.
git commit
git commit
git commit
git commit
Happy with this, you can make a new single commit on top of master
git reset --soft master
git commit
Now merge to master (it will be a fast-forward) and tidy up the topic branch. (Note that you don't need to do this if you are prepared to remember or tag where master was and just work on master without branching, you could have just done git reset --soft old-master
and git commit
and you wouldn't need these last clean-up steps.)
git checkout master
git merge topic
git branch -d topic
You can also use git merge with the --squash
option.