Git users: I am looking for a tool that may or may not exist; please share for reach! If it exists, please let me know!

I want a tool where, given the current repo state or the current repo state and a set of commits (source state), I can create a new history like so:

* Drag and drop files and parts of files from the source state into new commits
* Drag and drop files and parts from the source state into a new commits on different branches.

I often find myself touching a lot of areas when trying to figure out how to solve a problem. I'll also have a bunch of WIP commits that I may not want to push. I'll get to the end and I'll be like "this should be multiple commits" or "this should be multiple PRs" or "the history just needs to be cleaned up" It's not absurdly hard to move the parts around via command line but it's tedious, time-consuming and error prone.

I just want to a way to basically say "This end result is more or less what I want, now just let me easily drag the parts around to where I want them" so I have a clean set of commits and branches.

@wwahammy It sounds to me like most of what you want is a more usable UI for git add -p; am I off base?

To be clear, I'm not in any way claiming that the existing workflow for this is good, just checking whether that is the kind of activity you want better tool support for.

Hmmm, I guess I'd want a UI that lets me select a part of a change and say "move this to an earlier/later commit", either creating a new commit at a specified point in the history, or selecting an existing one. I think it ought to be able to help resolve some merge conflicts too, under the constraint that the later of the two commits involved in the move should end up with the same tree contents after the move is done.

@jamey @wwahammy knowing add -p and rebase is one of those interview questions I use to measure git and workflow comfort