如何在合并时支持忽略部分文件不合入?

由于Git配置文件非常灵活,目前服务端不支持在合并时忽略部分文件不合入。但是在本地合并时支持设置忽略部分文件。

本地合并忽略部分文件

若有页面评审的需求,可在页面创建合并请求,利用平台能力完成自动化/人工评审,注意完成后不要通过页面进行合并,需在本地针对已经评审通过的内容,执行合并操作。操作前需要进行忽略规则配置。

配置过程用以下示例说明:

  • 实现dev分支根目录下的文件demo.txt,不合并到master分支上。

  • 实现dev分支文件/common/src/main/resources/demo.yml,不合并到master分支上。

为了实现以上目的,设置步骤如下:

  1. 首先在根目录下运行命令,启用忽略文件设置:

    git config merge.ours.driver true    
  2. 在dev分支上建立 .gitattributes 文件并提交,内容如下:

    demo.txt merge=ours
    /common/src/main/resources/demo.yml merge=ours
  3. 切换到master分支上,执行merge操作:

    git checkout master
    git merge dev
重要

如果 dev 的某个文件修改不需要合并到 master ,则 master 的文件修改时间必须在 dev 的修改时间之后。在示例中,需要先修改 dev 分支的文件并提交,再修改 master 的文件并提交,然后合并。