git rev-parse --abbrev-ref fatal: HEAD does not point to a branch

这篇具有很好参考价值的文章主要介绍了git rev-parse --abbrev-ref fatal: HEAD does not point to a branch。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

problem

Jenkins执行git命令报错
git rev-parse --abbrev-ref HEAD@{upstream} fatal: HEAD does not point to a branch,
10:12:21 fatal: HEAD does not point to a branch
10:12:21 ERROR Error loading vue.config.js:
10:12:21 ERROR Error: Command failed: git rev-parse --abbrev-ref HEAD@{upstream}
10:12:21 fatal: HEAD does not point to a branch

reason

导致整个报错的原因是: git rev-parse --abbrev-ref HEAD 这个命令返回值错误

  • 正常本地返回 dev ,
  • jenkins打包返回 HEAD

为什么 git rev-parse --abbrev-ref HEAD 这个命令没有返回实际分支,而是固定HEAD呢?可能原因是:

  • Jenkins下git配置,additional behaviours
  • Jenkins git 版本太低,本地版本是2.36.0,Jenkins git 版本是 2.20.0

solution

如何解决呢?文章来源地址https://www.toymoban.com/news/detail-429405.html

  • 解决报错问题:修改Jenkins下git配置 或 升级 Jenkins git 版本(未尝试)
  • 换其他方案获取当前分支:本人找到以下3种,最终只有方案3可行,可根据实际情况选择方案
// 方法1
const localBranchName = child_process.execSync('git rev-parse --abbrev-ref HEAD').toString().trim() // 正常应该是dev 但是 Jenkins返回固定值 HEAD 
const branchName = child_process.execSync(`git rev-parse --abbrev-ref ${localBranchName}@{upstream}`).toString().trim() // Jenkins打包失败

// 方法2 
const branchName = child_process.execSync(`git branch --show-current`).toString().trim() // jenkins报错  error: unknown option `show-current' 可能是git版本太低

// 方法3:最终项目使用这个命令 
const branchName = child_process.execSync(`git log -n 1 --pretty=%d HEAD`).toString().trim() // Jenkins正常返回 (HEAD, origin/dev)

到了这里,关于git rev-parse --abbrev-ref fatal: HEAD does not point to a branch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决git reset --soft HEAD^撤销commit时报错:fatal: ambiguous argument ‘HEAD^‘.....

    问题: 在进行完commit后,想要撤销该commit,于是使用了 git reset --soft HEAD^ 命令,但是出现如下报错: 寻找过程: 在尝试了国内的一些博客提供的方法后,仍然无法解决问题。于是去Stack overflow上查了一下,找到了方法。 原因猜想: 在Stack overflow上,有人和我遇到了同样的问

    2024年02月11日
    浏览(48)
  • git fatal: bad object refs/heads 解决方案

    (一)问题表现 (二) 解决方案 1、把 .gitrefsremotesorigin 下出问题的分支名称删除掉 2、把.gitrefsheads下出问题的分支名称删除掉 再次执行git pull --rebase即可解决。 (三)参考文档: git提交的时候出现异常“bad object HEAD”的另一种解决方案_buzaiyouyu001的博客-CSDN博客

    2024年02月16日
    浏览(59)
  • Git error:‘fatal: Couldn‘t find remote ref master‘

    如果出现该错误提示,可能是因为使用了旧命令: master现在被认为是有种族歧视的,github将其换成了 main ,所以现在使用pull可以写为: 如需要将已有repos的 master 换为 main ,可依照以下步骤: 1-重命名本地分支: 2-重命名远程分支 3-删除远程分支 master 4-告知团队中的其他人

    2024年02月09日
    浏览(39)
  • 解决Git报错fatal: couldn‘t find remote ref –-allow-unrelated-histories 的解决办法

    当执行git中的“git pull origin master –allow-unrelated-histories”命令时, 如果出现 fatal: couldn\\\'t find remote ref –-allow-unrelated-histories 的错误,输入如下命令即可解决: git pull --rebase origin master git push origin master 点赞 -收藏-关注-便于以后复习和收到最新内容 有其他问题在评论区讨论-或

    2024年02月13日
    浏览(37)
  • Git报错和解决方法fatal: not a git repository,failed to push some refs, Your local changes to ‘file,pathspec

    本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题 中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:

    2024年02月05日
    浏览(59)
  • fatal: bad object refs/remotes/origin/master

    从gitlab pull代码的时候,报了下面错误 解决办法 然后重新选择远程分支 然后$ git pull 会打开一个文件让你填写合并信息,我直接关掉了 然后就正常了,问题的原因还没有搞清楚,猜测可能是我在没有网络的情况下进行了commit和 push 操作

    2024年02月13日
    浏览(43)
  • fatal: bad object refs/remotes/origin/xxx 解决方法

    也可一个一个点进去以文件夹删除

    2024年02月11日
    浏览(46)
  • 踩坑:gitee报错fatal: Couldn‘t find remote ref master。

    在通过vscode提交代码到远程仓库的时候,报了这个错:fatal: Couldn\\\'t find remote ref master。 然后,我在网上找了超级多方法,基本都是检查仓库配置,我贴一下,看大家是否需要: 1.检查本地GIT的配置 使用以上命令来检查本地的用户名和邮箱是否填写正确 2.检查远程仓库配置 如

    2024年02月11日
    浏览(60)
  • 【异常】fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before

    error: You have not concluded your merge (MERGE_HEAD exists). hint: Please, commit your changes before merging. fatal: Exiting because of unfinished merge. 同事在写A文件,我也在改A文件,合并的时候,出现了冲突的问题。 在git命令行中执行以下命令 选择接受他们的,问题解决!

    2024年02月17日
    浏览(58)
  • fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you

    翻译一下: 致命:您尚未结束合并(MERGE_HEAD 存在)。 请在合并之前提交您的更改。 解决办法:

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包