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)?