通过代码而不是手动进行更改时拉取请求冲突

pull request conflict when making a change by code instead of manually

在 Jenkins 管道中,以下工作:

  1. 在package.json中手动更改版本号
  2. 提交并推送
  3. 创建从功能分支到开发分支的拉取请求
  4. Jenkins 签出,运行 测试,npm 发布到开发范围,并合并
  5. 创建从 develop 分支到 master 分支的拉取请求
  6. Jenkins 签出、运行 测试和 npm 发布到产品范围

如果我使用 npm version patch 将手动版本操作替换为管道的一部分,并将此版本更改提交回开发分支...

...然后一旦从develop分支创建pull request到master分支,由于冲突无法创建pull request。冲突出现在通过 npm version patch 命令更改的 package.json 中的版本行中。

我很确定它与行尾有关。我不知道如何解决这个问题。

我们应该在决定发布之前手动更改包的版本号,还是自动增加它?显然现在后者将由于上述原因而失败...


一个解决方案是以某种方式保留 "version": "0.0.8", 的行结尾,就像在将其从 .7 更改为 .8 之前一样...

添加具有以下内容的 .gitattributes 文件似乎已解决问题。

*.json text eol=lf