I've read about some tricks with merge in Git: merging public and private branches while while keeping certain files intact in both branches and others and not found a solution.
In my case I'm feeling need to do opposite merge strategy. In parallel development I have to keep some files same across the arbitrary branches. From other side I do not want to do squash or no-commit merge, while difference are significant and could break current state of testing branch.
What I want something like
git checkout testing
git merge config.xml -b development
git merge config\*.xml -b development
git merge-files ...
There are a couple things you can do.
One, you can cherry-pick the changes you want, which applies only a single commit. For example, if there's a change that only touches
config.xml, you can cherry-pick it with
$ git cherry-pick $COMMIT_ID_YOU_WANT
You could also just grab
config.xml from the development branch:
$ git checkout testing $ git checkout development -- config.xml
That'll get you the same version of
config.xml that exists in the development branch, but note that it won't pull in the history of changes to the file.