美文网首页DevOps攻城狮
GitSCM clone 代码不显示分支

GitSCM clone 代码不显示分支

作者: DevOps攻城狮 | 来源:发表于2019-11-18 22:04 被阅读0次

最近遇到一个 regression bug,是产品完成构建之后,build commit number 不对,显示的 HEAD 而不是常见的 97b34931ac HASH number,这是什么原因呢?

我检查了 build 脚本没有发现问题,branch 的输出是正确的,那我怀疑这是引入 Jenkins 的原因,果然登录到远程的 agent 上去查看分支名称如下:

C:\workspace\blog>git branch
* (HEAD detached at 97b3493)

果然问题出在了 Jenkins 上。这个问题有简单办法解决,就是直接使用 git 命令来 clone 代码,而不使用 Git 插件

git clone --depth 1 -b u2opensrc https://username:"passwowrd"@git.github.com/scm/blog.git blog

如果想使用 Jenkins 插件如何解决呢?随后google一下,果然有遇到和我一样问题的人,问题链接在这里

他说他做了很多调查,还跟专业的 Jenkins 员工联系,试了很多次,最后找到这个办法

checkout([$class: 'GitSCM', branches: [[name: '*/feature/*']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'LocalBranch', localBranch: "**"]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '99f978af-XXXX-XXXX-8147-2cf8f69ef864', url: 'http://TFS_SERVER:8080/tfs/DefaultCollection/Product/_git/Project']]])

主要是在 extensions:[] 中加入这句 [$class: 'LocalBranch', localBranch: "**"]
这是 Jenkins 的 Bug 吗?带着这个疑问随后通过 Pipeline Syntax,找到 checkout: Check out from version control,在 Additional Behaviours 里有 Check out to specific local branch 这个配置项

If given, checkout the revision to build as HEAD on this branch.

If selected, and its value is an empty string or "**", then the branch name is computed from the remote branch without the origin. In that case, a remote branch origin/master will be checked out to a local branch named master, and a remote branch origin/develop/new-feature will be checked out to a local branch named develop/newfeature.

看介绍原来 Jenkins 自带这个设置,只是它不是默认选项,所以才遇到刚才那个问题。随后选择这个设置,然后填入"**",然后生成 Pipeline 脚本,就跟上面的脚本一样了。

相关文章

  • GitSCM clone 代码不显示分支

    最近遇到一个 regression bug,是产品完成构建之后,build commit number 不对,显示...

  • Git Bash使用随记

    clone 代码 git clone git@xxxxxx默认master分支 clone 指定分支代码 git ...

  • Git

    拉取分支代码 git clone -b clone后,idea中代码分支和Aon...

  • gitlab

    git clone 不指定分支 git clone 指定分支

  • git 操作持续记录

    1、远程拉取分支代码 git clone -b [分支名称] git地址eg: git clone -b dev ...

  • git教程 第二节 git clone 与git branch与

    一、克隆项目 git clone(默认master分支) git clone默认是克隆master分支上的代码我们...

  • git分支命令行(建立分支,删除分支)

    克隆远程分支代码git clone -b branchName address 拉取远程分支代码git pull ...

  • git 日常

    1.从远程Clone代码到本地 <1>、指定Clone分支如果不适用-b 则默认Clone的是master分支 g...

  • Git常用命令简记

    clone代码 查看状态 查看分支 分支创建 切换分支 更新代码 提交代码 推送到远程仓库 代码合并 最后,不得不...

  • 常用的Git命令

    Git命令 克隆代码:git clone 创建分支:git branch branchname 切换分支:git ...

网友评论

    本文标题:GitSCM clone 代码不显示分支

    本文链接:https://www.haomeiwen.com/subject/rbliictx.html