Initially, I branched from master (A) and made a commit (B) on my feature branch...then merged in changes from master (C as D) and made another commit (E) using the changes from that merge:
-A--C
\ \
B--D--E
Now, I'd like to eliminate the merge commit itself (D) and clean up my branch's history by rebasing my entire branch against a later master (C):
-A--C
\
B--E
However, I am sufficiently confused about how to accomplish this.
the "by hand" approach would be:
git checkout --detach C
git cherry-pick B
git cherry-pick E
Then you can set a branch over here:
git branch -f some-branch
git checkout some-branch