启动TortoiseGit时出现此错误:
无法获得所有裁判 libgit2返回:未找到Refspec'refs / heads / origin / HEAD'
虽然烦人,但它并不妨碍我使用TortoiseGit。但是,我想让它消失,因为它是,恼人的。我该如何解决这个问题?
答案 0 :(得分:24)
事实证明,为了更新 哪个分支<remote>/HEAD
所指向的本地回购视图 ,您可以让git自动获取该来自遥控器的信息并在本地为您设置,而不必像我上面的旧解决方案那样用git symbolic-ref
手动设置它:
git remote set-head <remote> --auto
# Or shorter
git remote set-head <remote> -a
请注意,此命令 实际上并未更改远程仓库本身的默认分支 。为此,如果您有权访问它,则可能需要use git symbolic-ref
directly on the remote repo。
错误消息引用的问题是显然libgit2正在尝试读取refs/remotes/origin/HEAD
指向的远程默认分支,但远程分支不存在,因此出错。
使用git branch -a
,我的本地仓库认为origin/develop
是远程默认分支:
remotes/origin/HEAD -> origin/develop
有一点origin/develop
确实是我在GitHub上的origin
回购中的默认分支,但它不再是master
分支。 develop
分支已从origin
中删除,因为不再需要它。
所以我通过手动更新本地参考origin/HEAD
以指向origin
上的新默认分支来解决此问题:
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
或者,如果我还想在refs/remotes/origin/HEAD
git symbolic-ref -m "Update to new remote default branch" \
refs/remotes/origin/HEAD refs/remotes/origin/master
这解决了这个问题。另见: