To create a list of patches between two commits, and exclude the files that have moved outside of the repo
git format-patch [SHA1..SHA2] -- . ":(exclude)folder_1" ":(exclude)folder_2"...
Checkout the target branch and check for errors using
git apply --check
Then apply the patch with -3way if you want to try every commit nonetheless or go back to editing your patches
git am -3 --sign-off <ls *.patch`
If you use the 3way merge, you can simply ignore and skip deleted file commits and use the log to reprocess all the forgotten files in subsequent patches