One of the more difficult things to do reliably in Git right now is merge the latest changes to a set of files from one branch to another. The changed files in question have been modified across several various commits in the branch and each commit containing these changes may also have changes to other files not relevant to this merge.
The quickest way I can see to do it is this:
$ git checkout master
$ git checkout topic1 -- *.vcproj *.mk Subdir/SomeFile.txt
$ git add .
$ git commit -m 'Merging latest changes to these files from topic1'
The 2nd step would be to somehow rebase/squash/etc topic1
to clean it up and remove any changes to the files I moved to master
. What is an efficient workflow for this?