You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Git合并时自动忽略CSV冲突,默认保留源分支CSV文件

合并分支时忽略CSV文件冲突,保留当前分支版本的解决方案

嘿,我明白你的需求了——合并branchb到brancha时,让所有CSV文件自动沿用brancha的版本,不用手动处理这些烦人的冲突,只专注解决代码文件的冲突对吧?这有两种靠谱的方法,看你是要临时生效还是长期配置:

方法一:临时处理(仅本次合并生效)

如果你只是这次合并需要这么做,不想改仓库的全局配置,按下面步骤来:

  1. 确认你当前在brancha分支(你已经说了在这,还是确认下更稳妥):

    git checkout brancha
    
  2. 执行合并命令,触发冲突:

    git merge branchb
    
  3. 现在Git会提示有冲突,先处理所有CSV文件:

    # 把所有冲突的CSV文件恢复为brancha的版本
    git checkout --ours -- *.csv
    # 如果CSV在子目录,用**/*.csv匹配所有层级的CSV文件
    # git checkout --ours -- **/*.csv
    
  4. 标记这些CSV文件为冲突已解决:

    git add *.csv
    # 对应子目录的话就是 git add **/*.csv
    
  5. 接下来处理剩下的代码冲突:打开提示冲突的代码文件,手动修改冲突内容,解决后执行:

    git add <冲突的代码文件名>
    
  6. 最后完成合并提交:

    git commit
    

方法二:长期配置(以后合并都自动处理CSV冲突)

如果之后还会遇到类似场景,建议给CSV文件设置默认的合并策略,一劳永逸:

  1. 在仓库根目录创建或编辑.gitattributes文件,添加一行规则:

    *.csv merge=ours
    

    这行规则告诉Git:只要CSV文件出现合并冲突,就自动采用当前分支(也就是你执行合并时所在的分支)的版本。

  2. 提交这个配置文件(可选,如果你想长期保留的话):

    git add .gitattributes
    git commit -m "Set merge strategy for CSV files to ours"
    
  3. 现在执行合并:

    git merge branchb
    

    Git会自动处理所有CSV的冲突,直接用brancha的版本,你只需要专注解决代码文件的冲突即可,后续步骤和方法一的5、6一致。

小提示

  • git checkout --ours -- *.csv 中的--很重要,它能避免文件名和Git命令参数混淆,确保*.csv被当作路径处理。
  • 如果之后不需要这个长期配置了,直接删掉.gitattributes里的那行规则,提交修改就行。

内容的提问来源于stack exchange,提问作者itthrill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:58:21