I have a history that looks like this:
A-B-C-----------M-I-J-K-L
\ /
D-E-F-G-H
master is currently pointing at L. This has already been pushed to origin.
I want to create a new branch which contains D to L and have master (on origin) pointing at C or a checkin that matches C. I need to make sure that anything other clones have done isn't broken. Then at some later point I want to merge D to L back into master and push to origin.
I looked at using revert, but it would appear that will affect what gets merged later. Is there a way to do this, I'm well confused.