Tool to move commit parents in Git
Fiddling with commits and branches in Git requires googling.
If it doesn’t – you have done the above already.
There are tools like Fork to aid but I suggest yat (yet another tool).
Show the commit graph graphically with boxes and arrows.
Let the user pull the arrows between commits.
This way one can reorder (i.e. interactive rebase) the commits.
The user can also move arrows between branches. Possibly more complex for the application to sort out but a tremendous help for the user.
The issue of merge problems remains.
If the rebase is ok, just do it.
If the rebase results in a merge problem, let the user handle it in his/her preferred/normal way.