I have two repositories. In one, I make changes to file ./hello.test. I commit the changes and create a patch from that commit with git format-patch -1 HE
Building upon the answer by @georgebrock, here's a solution I used:
First, create the patch files as usual (eg. git format-patch commitA..commitB).
Then make sure that your target repository is clean (there should be no changed or untracked files) and apply the patches like this:
cd second-repo
git am ~/00*.patch
For every patch file you will get an error like "error: XYZ does not exist in index". You can now apply this patch file manually:
patch --directory blue/red < ~/0001-*.patch
git add -a
git am --continue
You have to do these three steps for each patch file.
This will preserve the original commit message etc. without requiring any special git format-patch command or editing the patch files.