My scenario is that I have one branch in which I\'ve made big improvements to the build process (branch A) and in another I\'m working on a unrelated feature (branch B). So
I'm not sure I understand your requirements.
You can run a merge, then call git reset HEAD~1.
The following sequence should replay every commit between master and branchA on top of branchB. Commits which were already applied on branchB will be skipped.
# start from branchA
git checkout branchA
# create a temporary branch wip
git checkout -b wip
# use rebase to replay each commit between master and wip on branchB
git rebase --onto branchB master wip
# if you want to remove all the commit history and only keep the resulting diffs,
# use git reset
git reset branchB
# change the active branch
git checkout branchB
# remove temp branch
git branch -d wip