git merge 时忽略配置文件文件
日常开发时经常会遇到某些配置文件,不希望在branch merge时被包含在内。
怎么处理?步骤如下:
步骤一:定义一个虚拟的合并策略,全局配置不依赖任何项目任何分支
git config --global merge.ours.driver true
步骤二:在你项目中根目录(与.gitignore
同级)添加一个配置文件.gitattributes
注意这个".gitattributes"在必须要放到merge的目标branch中,而不是源branch。
步骤三:在.gitattributes
中添加你要忽略合并的文件(夹)
dist/**/* merge=ours
some.config.js merge=ours
步骤四:切换其他分支,修改一下涉及到忽略的文件。切回有".gitattributes"的
分支,merge
验证。
参考文献:运用git的合并策略忽略文件merge - SegmentFault 思否
我个人试下来,在sourcetree中这样做不能生效。。。
我建议还是通过专门的feature branch绕开配置文件的问题。对于每次功能开发feature branch中只包含代码,不包含配置文件。
配置文件只包含在主要的DEV, UAT和Release branch中