Alex Rivera | Logout

git partial merge, not whole branch

Asked 2010-11-30T16:23:10.553
78

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 or git merge config\*.xml -b development

I guess this is like git merge-files ... command, but second file delivered from the branch, not from the filesystem. Is it possible? or may be there is a kind of workaround? submodules? attributes?

Thanks

Edit
Report

1 Answer

24

If you just want to apply changes made by a certain range of commits (this can as well be only a single commit), made to only a subset of files then do:

git diff commit1..commit2 filepattern | git apply --index && git commit

You could also just apply the above pattern excluding git commit, review your staging area to see if all changes are as required and finally commit the staging area manually.

answered 2011-01-24T17:52:16.220

Your Answer