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

Git自定义合并驱动无法自动暂存已解决文件,如何处理?

解决自定义Git合并驱动自动暂存问题

问题根源

你配置里的recursive = binary是核心问题——这个设置会让Git把你的自定义驱动识别为二进制文件合并驱动。Git对文本和二进制合并驱动的处理逻辑有明确区别:

  • 内置text驱动属于文本类型,当驱动成功合并(返回0)时,Git会自动将文件暂存到索引
  • 二进制驱动即便合并成功,Git也不会自动暂存,因为二进制文件通常需要手动确认内容正确性

你的驱动实际是处理文本文件的,却被标记为二进制类型,导致成功合并后Git跳过了自动暂存步骤。

修复方案

将配置中的recursive = binary改为recursive = text,或者直接删除这一行(Git默认会按文本驱动处理):

[merge "auto-pro"]
    name = Auto-merge as much as possible and don't add conflict markers
    driver = git merge-file -p %A %O %B > %P || (git merge-file --ours -p %A %O %B > %P && false)
    recursive = text

为什么不能直接加git add

合并过程中Git会锁定索引,自定义驱动运行在这个锁定的上下文环境中,此时执行git add会触发索引锁定报错,这是Git的保护机制,避免并发修改索引导致数据不一致。必须让Git在驱动成功返回后,按照文本驱动的逻辑自动完成暂存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:39:54