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


当前回答

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

其他回答

由Google Drive desktop.ini文件引起时

用于Windows的Google Drive客户端在每个文件夹中创建desktop.ini文件。如果您的git存储库位于正在与Google Drive同步的目录中,则desktop.ini文件将导致git存储失败,出现以下情况:

cannot lock ref 'refs/remotes/origin/desktop.ini': unable to resolve reference 'refs/remotes/origin/desktop.ini': reference broken

要解决此错误,您可能需要删除git存储库中的desktop.ini文件。

如果安装了WSL,则可以使用以下命令删除desktop.ini文件:

注:⚠️ 此命令将删除<project_directory>中所有.git目录中的所有desktop.ini文件。

find <project_directory> -type d -name .git -print0 | xargs -0 -I {} find {} -type f -name desktop.ini -print0 | xargs -0 -I {} rm -vf {}

如果只想删除特定.git目录中的desktop.ini文件,则可以使用以下命令:

find <.git_directory> -type f -name desktop.ini -print0 | xargs -0 -I {} rm -vf {}

当存储库被删除并以相同的名称创建时,也面临同样的问题。它只在我重新设置远程url时起作用,如下所示;

git远程设置url来源[git_REPO_url]

验证远程url:

git remote -v

现在,所有命令都应该照常工作。

对我来说,它可以从.git/refs/remotes/origin/文件夹中删除引发错误的文件。

从项目中手动删除特定分支的文件

.git/refs/remotes/origin/master
 git gc --prune=now
 git pull

我在使用SourceTree时遇到了这个问题。我试着再拉一次,结果成功了。我想我切换分行(结账)太快了。

我的情况与海报有点不同,因为我的存储库相对合作,没有任何明显的腐败。