如何通过自定义规则自动解决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
相关产品推荐
相关产品推荐

