The git book [1] and a few blog posts [2] show how to preserve files which are in the current branch against changes that are on the branch being merged in. e.g. (from [2]) echo '<filemane> merge=ours' >> .gitattributes && # commit git config --global merge.ours.driver true (test) $ git checkout demo (demo) $ git merge - # <filename> contents are not merged and the original retained. However what is not covered (at least in the documentation ) is the case where the file to be ignored is not present on the current branch, but is present on the branch to be merged in. Normal expectations would be that in such a case the new file from the second parent branch would be added to the current branch. Is there an easy way to use the current mergedriver mechanism to make this new file from the second parent 'go away' - does one have to delete output path (%P) or what? (or is this just a documenation issue?) [3] Inspired by SO Q&A https://stackoverflow.com/questions/44131926/git-merge-remove-unnecessary-file-folder/44138354#44138354 " git merge I'm trying to merge my dev branch to master, but I don't want to merge some of the files/folders to master branch, because it is not needed now on Master." Any suggestions for a simple merge driver to avoid merging and commiting such precious files from the second parent at merge time? -- Philip [1] http://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#Merge-Strategies [2] https://medium.com/@porteneuve/how-to-make-git-preserve-specific-files-while-merging-18c92343826b [3] https://git-scm.com/docs/gitattributes #Defining a custom merge driver: "The merge driver can learn the pathname in which the merged result will be stored via placeholder %P."