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

如何通过自定义规则自动解决package.json版本字段的Git合并冲突?

解决package.json版本号自动合并冲突的脚本方案

可以通过Git自定义合并驱动(merge driver)实现自动保留当前分支(HEAD)的version字段内容,避免每次合并时的版本号冲突。具体步骤如下:

1. 创建自定义合并处理脚本

在项目的.git目录下创建package-merge.sh脚本(也可放在项目根目录),内容如下:

#!/bin/bash
# 处理package.json合并冲突,仅保留HEAD分支的version字段内容
awk '
/<<<<<<< HEAD/ { in_head=1; next }
/=======/ { in_head=0; next }
/>>>>>>> / { next }
{ print }
' "$1" > "$2"
exit 0

给脚本添加执行权限:

chmod +x .git/package-merge.sh

2. 配置Git合并驱动

执行以下命令,让Git识别这个自定义合并驱动:

git config merge.package-merge.driver './.git/package-merge.sh %A %A'
git config merge.package-merge.name 'Keep HEAD version in package.json during merge'
  • %A 代表当前分支(HEAD)的文件路径,脚本处理后直接将结果写入该文件。

3. 指定package.json使用该驱动

在项目根目录创建或修改.gitattributes文件,添加一行规则:

package.json merge=package-merge

完成以上配置后,后续合并代码时,只要package.json的version字段出现冲突,Git会自动调用脚本保留当前分支(HEAD)的版本号,无需手动解决冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:46:09