Hmmmm... One thing you could do is pipe the output of git diff to a temporary place, then read it back in with git apply:
git diff --patience <commitA> <commitB> > /tmp/patch.out
# checkout a new branch or otherwise do what you need to prep
git apply < /tmp/patch.out
That'll apply the output of the diff to the working directory, but it won't commit or stage the changes. You can then run git add -p as you normally would, and the --patience diff will be the changes you're interactively adding.
There's no reason you couldn't pipe diff to apply directly, if it better suits your workflow. It's something I do fairly regularly when rebuilding my own local branches for production integration.
Looks like you can also use it as a merge strategy, so it might be the case that instead of interactively adding the diffs, you could simply create a branch with what you want, then merge it in.
gitdevelopers... In fact, there may be othergit diffoptions that it would be useful to expose togit addand other places where an otherwise default-ishgit diffis done...