git - Jenkins Git 插件在发布构建期间尝试构建旧版本

标签 git github jenkins jenkins-plugins maven-release-plugin

我正在尝试使用 maven-release-plugin 发布 Maven 项目。 Jenkins Git 插件似乎没有正确 check out 存储库。

下面是我的 Jenkins Job 配置

Repository URL : git@githubenterprise:/user/repo.git

Branches to build: */master

Repository browser: Auto

Additional Behaviours:

  Checkout to specific local branch : master

失败发布的 Git 构建数据显示

Revision: 267**
refs/remotes/origin/origin/master
Built Branches

refs/remotes/origin/master: Build #4 of Revision 755** 
(refs/remotes/origin/master)
refs/remotes/origin/origin/master: Build #10 of Revision 267*** 
(refs/remotes/origin/origin/master)

作业控制台显示

Multiple candidate revisions
Scheduling another build to catch up with MyJenkinsBuildJob
Checking out Revision 267** (refs/remotes/origin/origin/master)

755** 是存储库中的最新提交,但 Git 插件正在 checkout 267** 修订版。因此,当 maven-release-plugin 尝试从旧提交中推回发布准备好的版本时,构建失败。

The git-push command failed.
Command output:
To ssh://git@githubenterprise:/user/repo.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://git@githubenterprise:/user/repo.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.

如何让 Jenkins Git 插件只 checkout 最新版本(在我的例子中是 755*)而不是尝试构建多个 checkout (不确定为什么这样做)

最佳答案

这是因为有人推送了一个名为“origin/master”的分支,该分支与我提供的 Branches to build: */master 配置相匹配。所以 Git 插件正在尝试检查这两个匹配的分支(“master”和“origin/master”)并构建它们

删除通配符并将分支说明符设置为 remotes/origin/master 解决了问题。

关于git - Jenkins Git 插件在发布构建期间尝试构建旧版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678277/

相关文章:

git - 如何恢复在分支 merge 时删除的已删除文件?

git - 如何查看 tig 中一系列提交的组合差异?

jenkins - 无法读取 Jenkins 管道作业中的 gradle.properties

git - 我用 "git mv"移动了所有项目文件,但我丢失了所有历史记录。为什么?

python - 无法写入 y/n 来继续在 kaggle 中安装库

git - _netrc 可以处理带空格的密码吗?

GitHub Pull Request 复杂的冲突

jenkins - 如何连接 Jenkins 和 Gieta

Jenkins MultiJob 插件 - "Phases"选项在构建部分不可用

git - 我怎样才能克隆一个 git 存储库并保持远程?