Git 报错:unable to update local ref

目录

问题

解决

步骤一、清除松散对象。

步骤二、刷新本地分支

步骤三、拉取远端仓库代码


问题

今天在一个老旧项目目录中同步代码时遇到了一个报错:unable to update local ref。

具体操作流程如下:

root@928c09c89c1c:/home/work/bag# git pull
error: cannot lock ref 'refs/remotes/origin/lozen/remux': 'refs/remotes/origin/lozen' exists; cannot create 'refs/remotes/origin/lozen/remux'
From git.baijiashilian.com:LLL/gloud/bag
 ! [new branch]      lozen/remux       -> origin/lozen/remux  (unable to update local ref)
error: cannot lock ref 'refs/remotes/origin/lozen/tc': 'refs/remotes/origin/lozen' exists; cannot create 'refs/remotes/origin/lozen/tc'
 ! [new branch]      lozen/tc          -> origin/lozen/tc  (unable to update local ref)
 * [new tag]         1.0.8.142-dasheng -> 1.0.8.142-dasheng
 * [new tag]         1.0.8.241         -> 1.0.8.241
 * [new tag]         1.0.9.021         -> 1.0.9.021

执行完 git pull 命令之后,最新的分支都已经同步下来,但是有两个分支报错了,具体的报错信息就是 unable to update local ref。其实这是一种比较常见的 Git 的报错,今天遇到了,就拿出来介绍一下解决方法。

解决

就像把大象装冰箱,总共分三步。

步骤一、清除松散对象。

命令如下:

git gc --prune=now

执行过程如下:

root@928c09c89c1c:/home/work/bag# git gc --prune=now
Enumerating objects: 3534, done.
Counting objects: 100% (3534/3534), done.
Delta compression using up to 64 threads
Compressing objects: 100% (1211/1211), done.
Writing objects: 100% (3534/3534), done.
Total 3534 (delta 2306), reused 3450 (delta 2230)

步骤二、刷新本地分支

同步远程仓库分支到本地,删除远程分支不存在但是本地还有的分支,执行过程如下:

root@928c09c89c1c:/home/work/bag# git remote prune origin
Pruning origin
URL: git@git.baijiashilian.com:LLL/gloud/bag.git
 * [pruned] origin/lozen

步骤三、拉取远端仓库代码

完成上面的两个步骤之后,我们就可以同步代码了,执行过程如下:

root@928c09c89c1c:/home/work/bag# git pull
remote: Enumerating objects: 123, done.
remote: Counting objects: 100% (123/123), done.
remote: Compressing objects: 100% (88/88), done.
remote: Total 123 (delta 69), reused 63 (delta 35), pack-reused 0
Receiving objects: 100% (123/123), 99.65 KiB | 2.93 MiB/s, done.
Resolving deltas: 100% (69/69), completed with 1 local object.
From git.baijiashilian.com:LLL/gloud/bag
 * [new branch]      lozen/remux -> origin/lozen/remux
 * [new branch]      lozen/tc    -> origin/lozen/tc
Already up to date.

可以看到,现在就没有问题了,已经成功把代码同步下来了,哈哈。完美!

整个问题的解决过程截图如下: 

作者简介:大家好,我是 Data-Mining(liuzhen007),是一位音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,公众号:玩转音视频。同时也是 CSDN 博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当你在使用Git时,如果遇到SSL certificate problem: unable to get local issuer certificate的错误,这是因为当你通过HTTPS访问Git远程仓库时,服务器上的SSL证书未经过第三方机构认证。未经认证的证书可能存在安全风险,所以Git报错。 解决这个问题的办法是在Git中将sslverify关掉。你可以使用以下命令来配置Gitgit config --global http.sslverify false 这个命令会将Git中的sslverify设置为false,即关闭SSL证书的验证。请注意,关闭SSL证书验证可能会导致安全风险,请在安全的环境下使用这个命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Git报错】SSL certificate problem: unable to get local issuer certificate](https://blog.csdn.net/SkipperKevin/article/details/126557268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [git中的SSL certificate problem: unable to get local issuer certificate错误的解决办法](https://blog.csdn.net/qq_55125921/article/details/125220576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data-Mining

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值