在jenkins构建之前合并失败但不应该

时间:2014-12-19 14:20:23

标签: git jenkins continuous-integration

我已经设置了jenkins来构建项目中的所有功能分支,然后在构建之前将它们合并为“develop”,因为我更感兴趣的是合并的结果而不是功能分支本身。

如果功能分支基于开发HEAD,这似乎有效,但如果分支关闭点在开发HEAD之前,那么jenkins说:错误:分支不适合集成,因为它没有干净地合并

如果发生冲突,这将是正常的。但没有冲突。我在控制台中手动测试了合并,并自动完成合并。

此外,如果比较功能分支并在atlassian stash中进行开发,它也会显示一个干净的差异而没有任何冲突。

我迷路了。为什么詹金斯不能合并呢?

4 个答案:

答案 0 :(得分:27)

我自己找到了。这是因为jenkins服务器上的git没有配置作者姓名/电子邮件。

配置完成后(在其他行为下)解决了问题。

答案 1 :(得分:0)

我遇到了同样的错误,试图建立一个以前的分支SHA-1。我删除了分支,它仍然尝试构建分支SHA-1并以同样的方式失败。我按照建议使用作者姓名/电子邮件配置了git,但它仍然失败了。然后我删除了Jenkins工作区根目录,并将错误更改为“无法检出...”。然后我直接从master重新创建了分支,上传了一个小的更改并创建了一个pull请求。 Jenkins正确地重建了新的分支,并开始重新开始工作。这讨论了“无法结帐”问题:https://issues.jenkins-ci.org/browse/JENKINS-26748

答案 2 :(得分:0)

我还发现,如果Jenkins / git配置为执行浅层克隆,则会发生此错误。如果你是浅层克隆,你需要禁用它:

  1. 取消选中作业配置中“其他行为 - >高级克隆行为”中的“浅克隆”
  2. 删除浅克隆深度(或者如果这里有任何值,它仍然是浅层克隆)
  3. 删除此作业的所有工作区,因为它不会“克隆”克隆,它需要重新克隆。

答案 3 :(得分:0)

我在Gitlab中有多个使用jenkins的项目,但有时一个项目会引发这个问题。所以我认为这不是因为git名称或电子邮件。

总是,我从上游git pull,确保本地与遥控器一致,然后git commit --amend(你可以退出,不需要编辑它) - > git pull -0> git push - > start jenkins