I have a branch, testing, that contains tons of changes to files in a/, and also to files in b/.
I want to port all of the commits from testing onto my master branch. However, I want to only port the changes to a/. On the master branch, b/ is in .gitignore, and should not show up in the history.
I'd like to do this in a way that preserves commit messages, authorship, and ideally timestamps.
I believe git filter-branch, or its recommended replacement, git filter-repo, might be the right tools for this. However, they seem targeted at whole-repository operations, not porting between branches, so figuring out how to use them for my purpose brings me to StackOverflow.