使用git 1.6.4.2时,当我尝试git pull时,会出现以下错误:

error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
 ! [new branch]      LT558-optimize-sql -> origin/LT558-optimize-sql  (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
 ! [new branch]      split-css  -> origin/split-css  (unable to update local ref)

我尝试过git远程梅干起源,但没用。


当前回答

我在作曲家更新方面也遇到了同样的问题。但对我来说,只有在我清除了composer缓存并删除了供应商文件夹的内容后,它才起作用:

rm -rf vendor/*
git gc --prune=now
git pull
composer clear-cache
composer update my/package

其他回答

解释:您的远程repo(在GitHub/BitBucket中)分支似乎已被删除,尽管您的本地引用未被更新并指向不存在的引用。

为了解决这个问题:

git fetch --prune
git fetch --all
git pull

额外阅读-参考Git文档:

gitfetch-从另一个存储库下载对象和引用--全部取下所有遥控器。--修剪提取后,删除远程上不再存在的任何远程跟踪分支。

简单地说,当您的本地人有一些关于远程的信息,并且有人更改了一些使远程和您的更改不同步的内容时,就会出现此问题。

我遇到这个问题是因为有人删除了远程分支,并再次创建了同名分支。

要处理此类问题,请从远程进行拉取。

git remote prune origin

或者,如果您正在使用任何GUI,请从远程执行提取。

如果“无法更新本地参考”的错误再次出现,即使在应用Vojtech Vitek或Michel Krämer的答案后,您也可能在本地AND主存储库中有错误的参考。

在这种情况下,您应该应用两个修复程序,而不需要在两者之间拉或推。。。

rm .git/refs/remotes/origin/master
git fetch
git gc --prune=now
git remote prune origin

只有在推/拉之前应用两个修复程序后,我才能获得永久解决方案。

试试看:

git pull origin Branch_Name

Branch_Name,您当前所在的分支。

如果您只执行一个git pull,它也会提取所有其他创建的分支名称。

所以你得到这个的原因是:

! [new branch]      split-css  -> origin/split-css  (unable to update local ref)

错误:无法锁定ref”仅仅意味着/refs中的信息已损坏,Git无法继续创建index.lock文件。

快速修复:删除并重新添加远程。

1-复制现有远程设备的SSH git URL。您可以使用以下命令将其打印到终端:

git远程-v

2-从本地git repo中删除远程设备:

git远程rm源

3-将远程设备添加回本地存储库:

git远程添加原点git@server-address.org:您的用户名/rep-name.git

4-修剪远程原点在线论坛的用户报告说,下面的命令对他们有效:

git远程修剪原点

5-清理和优化本地存储库git-gc--prune=现在

您可以在本文中找到更多信息:https://linuxpip.org/git-error-cannot-lock-ref/