使用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远程梅干起源,但没用。


当前回答

错误:无法锁定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/

其他回答

今天刚遇到问题。

故障排除方法:使用Windows服务器上的SourceTree,您可以尝试以管理员身份运行它。这解决了我在域中Windows Server 2012 R2上的Atlassian源树2.1.2.5上“无法更新本地引用”的问题。

如果您也可以复制这种情况,则证明问题是由权限问题引起的。最好深入研究并找到根本原因-可能某些特定文件是由其他用户等拥有的-否则会有一个不受欢迎的副作用:您将不得不以管理员身份运行SourceTree。

我只是想补充一下Git引用损坏的可能原因之一。

可能的根本原因

在我的系统(Windows 7 64位)上,当BSOD发生时,一些存储的参考文件(最有可能是BSOD发生后当前打开/写入的)会被NULL字符(ASCII 0)覆盖。

正如其他人提到的,要修复它,只需删除那些无效的引用文件并重新获取或重新提取存储库就足够了。

实例

错误消息:

无法锁定引用“refs/remotes/origin/some/branch”:无法解析引用“refs/remotes/origin/some/bbranch”:引用已断开

解决方案:

删除存储在文件%repo_root%/.git/refs/remotes/origin/some/branch中的引用refs/remotes/corigin/sme/branch。

有相同的消息,但有一个目录,在拉动时收到一条失败的消息。

git俯卧也帮不了我。原来有一个与远程创建的目录同名的文件。

必须转到.git\logs\refs\remotes\origin并删除区域设置文件-然后再次拉,一切正常。

尝试了这些,但没有对我起作用:

$ git gc --prune=now
$ git remote prune origin
$ git fetch --prune

我不得不通过删除本地文件夹并再次克隆来解决这个问题。

我正在使用Tower,不知为什么,我的文件夹名是.git/refs/remotes/origin/Github。将其更改为小写的.git/refs/remotes/origin/github解决了这个问题。