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

如何在Git Merge中禁用npm-merge-drive?解决Cherry-Pick失败问题

如何禁用或移除npm-merge-drive以解决Git Merge/Cherry-Pick冲突问题

临时禁用(单次操作)

如果你只是想在某次Merge或Cherry-Pick时跳过npm-merge-drive,试试这些方法:

  • 单次Merge操作:执行merge时指定合并策略,强制保留本地或远程版本,跳过自动合并工具:
    # 保留本地的package-lock.json版本
    git merge <目标分支> --strategy-option ours
    # 或者保留远程分支的package-lock.json版本
    git merge <目标分支> --strategy-option theirs
    
  • Cherry-Pick冲突处理:当cherry-pick触发npm-merge-drive失败时,手动解决冲突后继续:
    # cherry-pick失败后,手动编辑package-lock.json解决冲突标记
    git add package-lock.json
    git cherry-pick --continue
    
    也可以临时禁用驱动再执行:
    git config merge.npm-merge-driver.driver false
    git cherry-pick <提交哈希>
    # 操作完成后可恢复配置(如果需要)
    git config --unset merge.npm-merge-driver.driver
    

永久移除npm-merge-drive

要彻底移除npm-merge-drive,避免它自动运行,需要修改以下配置:

  1. 删除本地.gitattributes配置:
    打开项目根目录的.gitattributes文件,删除这一行(如果存在):
    package-lock.json merge=npm-merge-driver
    
  2. 清除全局Git配置:
    执行命令移除全局的npm-merge-drive相关配置:
    git config --global --unset merge.npm-merge-driver.driver
    git config --global --unset merge.npm-merge-driver.name
    
  3. 重置npm的Git合并驱动设置:
    有些场景下npm会自动配置Git合并驱动,执行以下命令清除:
    npm config delete git.merge-driver
    

完成这些操作后,Git处理package-lock.json的合并或cherry-pick时会使用默认文本合并方式,冲突时需要手动解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:21:14