The question is an extension of this one: How to inject a commit between some two arbitrary commits in the past?
Suppose I have the following commit history on my local-only branch:
A -- B -- C -- D
\- E
How do I insert a new commit between A and B and keep both D and E above C?