我已经设置了jenkins来构建项目中的所有功能分支,然后在构建之前将它们合并为“develop”,因为我更感兴趣的是合并的结果而不是功能分支本身。
如果功能分支基于开发HEAD,这似乎有效,但如果分支关闭点在开发HEAD之前,那么jenkins说:错误:分支不适合集成,因为它没有干净地合并
如果发生冲突,这将是正常的。但没有冲突。我在控制台中手动测试了合并,并自动完成合并。
此外,如果比较功能分支并在atlassian stash中进行开发,它也会显示一个干净的差异而没有任何冲突。
我迷路了。为什么詹金斯不能合并呢?
答案 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配置为执行浅层克隆,则会发生此错误。如果你是浅层克隆,你需要禁用它:
答案 3 :(得分:0)
我在Gitlab中有多个使用jenkins的项目,但有时一个项目会引发这个问题。所以我认为这不是因为git名称或电子邮件。
总是,我从上游git pull,确保本地与遥控器一致,然后git commit --amend
(你可以退出,不需要编辑它) - > git pull
-0> git push
- > start jenkins
。