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

Git合并冲突文件无冲突标记提示,被误判为二进制文件如何解决

解决Git合并时文本文件被识别为二进制导致无冲突标记的问题

问题背景

合并feature分支到dev分支时,实际为文本文件的conflict.txt被Git识别为二进制文件,触发冲突后仅保留dev分支原内容,未生成<<<<<<< HEAD这类冲突标记,git diff命令显示该文件为二进制。

解决步骤

  1. 检查文件的Git属性
    执行命令查看Git对该文件的识别属性:

    git check-attr --all conflict.txt
    

    如果输出包含conflict.txt: binary,说明Git确实将其标记为二进制文件,这就是问题根源。

  2. 强制Git将文件识别为文本

    • 针对单个文件设置
      在项目根目录创建或编辑.gitattributes文件,添加规则强制该文件为文本类型:
      echo "conflict.txt text" >> .gitattributes
      git add .gitattributes
      git commit -m "标记conflict.txt为文本文件"
      
    • 全局规则设置(可选)
      如果是文件编码或换行符问题导致Git误判,可全局配置文本文件的自动识别:
      git config --global core.autocrlf true
      git config --global core.attributesfile ~/.gitattributes_global
      echo "* text=auto" >> ~/.gitattributes_global
      
  3. 重新执行合并操作
    先回退之前失败的合并:

    git merge --abort
    

    之后重新执行合并:

    git merge feature
    

    此时Git会按文本文件处理conflict.txt,冲突时会正常生成冲突标记。

  4. 验证设置效果
    执行以下命令确认文件已被识别为文本:

    git check-attr --all conflict.txt
    

    或强制按文本对比查看差异:

    git diff --text conflict.txt
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:39:28