场景:项目中有一个分叉的或者定制过的主题分支,你希望该分支上的更改能合并回你的主干分支,同时需要忽略其中某些文件。 假设你有一个数据库设置文件 database.xml
,在两个分支中它是不同的,而你想合并另一个分支到你的分支上,又不想弄乱该数据库文件。
- 在根目录下找到.gitattibutes文件,在里面设置虚拟合并策略(可以称为ours)
database.xml merge=ours
- 设置git merge的配置项
git config --global merge.ours.driver true
- 提交推送.git attributes文件
git add
git commit
git push
合并另一个分支后,我们发现database.xml
文件不会有合并冲突,相反会显示如下信息:
$ git merge topic
Auto-merging database.xml
Merge made by recursive.