This is the real key here. Most don't really want git-merge(1) or git-rebase(1). They want git-go-back-and-extract-my-commits-into-a-topic-branch(1).
A-B-C-D-E-F-G
git branch topicA
A-B-C-D-E-F-G (master) A-B-C-D-E-F-G (topicA)
A-B (master) A-B-C-D-E-F-G (topicA)
A-B-----------H (master) \ / C-D-E-F-G (topicA)
git checkout -b a-topic-branch git checkout master
git checkout master git reset --hard origin/master
This is the real key here. Most don't really want git-merge(1) or git-rebase(1). They want git-go-back-and-extract-my-commits-into-a-topic-branch(1).