I have the following minimal example:
---M---A-----D1---D2---D3
   |\       /|
   | B1---B2 |
   \         / 
    -C1---C2-
Here,
- M is master at the moment,
- there are features 
- A,
- B (consisting of B1, B2), and
- C (consisting of C1, C2)
 
under development and on top of all those a feature
- D (consisting of a series D1, D2, D3).
Now feature A was accepted to go into the master branch, therefore I have to rebase everything to A. This means, I want
---M---A-----------D1'---D2'---D3'
       |\         /|
       | B1'---B2' |
       \           / 
        -C1'---C2'-
Of course, it is easy to rebase B (B2) at A, and also C, alone/separately.
But how do I rebase my branch D (including B and C), keeping the merge D1 (as shown above)?
 
     
     
    