``git add -p`` allows to interactively decide what is to be staged. It shows hunks of code to you much like ``git diff`` would do. The question is: is it possible somehow to interactively stage arbitrary differences other than diffs between working tree and HEAD commit (or actually staging area)? Is something like ``git diff tagA branchB | git add -p`` possible? Verbatim, it is not. But is it possible to put it another way somehow?