【问题标题】:Git show-branch command returns different output in Jenkins jobGit show-branch 命令在 Jenkins 作业中返回不同的输出
【发布时间】:2022-06-29 03:46:06
【问题描述】:

“git show-branch”命令从本地克隆返回当前分支的提交历史,包括其父分支:

[me@server project]$ git show-branch
! [branch1] Commit 1
 * [branch2] Commit 2
  ! [main] Minor fix
---
 *  [branch2] Commit 2
+*  [branch1] Commit 1
+*+ [main] Minor fix

我有一份 Jenkins 工作,检查代码类似于:

checkout ([
    $class: 'GitSCM',
    branches: [[name: '*/*']],
    doGenerateSubmoduleConfigurations: false,
    extensions: [],
    submoduleCfg: [],
    userRemoteConfigs: [[
        credentialsId: 'id123',
        url: 'https://url123.com/repo.git'
    ]]
])

现在,如果我要检查一个特定的分支并从 Jenkins 发出“git show-branch”命令,结果只包含当前分支的提交,而不包含来自父分支的任何内容。

[Pipeline] bat

C:\jenkins\workspace\project>git show-branch
[branch2] Commit 2
[Pipeline]

如您所见,我没有使用浅层结帐,但仍然缺少历史记录。 git版本是一样的。我没有找到关于 showbranch.default 的任何设置,请参阅 https://git-scm.com/docs/git-show-branch 可能有影响。

您能建议一下吗?非常感谢。

【问题讨论】:

  • 您是在手动创建的管道作业中运行结帐步骤,还是使用多分支作业或组织文件夹?
  • 结帐步骤在手动创建的作业中完成。

标签: git jenkins


【解决方案1】:

AFAK Jenkins 不会为所有远程分支 (refs/remotes/.../) 创建本地分支 (refs/heads/);但show-branch 只显示本地的。

正如链接文档所说(强调我的):

git show-branch [...]
      [(<rev> | <glob>)…​]

显示从命名为的提交开始的提交祖先图 &lt;rev&gt;s 或&lt;glob&gt;s(refs/heads 和/或refs/tags 下的所有参考) 半视觉。

也许在 Jenkins git show-branch refs/remotes/origin/* 上做你想做的事?

但要小心,在初始结帐后,Jenkins 只会更新当前正在构建的分支的 ref!

【讨论】:

    猜你喜欢
    • 2018-12-31
    • 2014-10-04
    • 2015-01-20
    • 2023-01-12
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多