1) In fact, you can just start with A and merge B, and then make your change as amendments to the merge commit. If the changes are sufficiently independent, you can even combine more than two. (octopus shift)
2) It is difficult. Rebasing is enough as much as possible - there is a reason why no one is talking about updating octopus, and git-rebase only trying to reinstall on a single parent. But I suppose you can create a merge, reinstall it, and then crush the merge command and your commit.
I have not tried any of this in practice, and it is probably shaky, but I wanted to make sure that someone mentioned it. Technically, this is doable.
source share