启动TortoiseGit时出现此错误:
无法得到所有裁判.
libgit2返回:未找到Refspec'refs/heads/origin/HEAD'
虽然烦人,但它并不妨碍我使用TortoiseGit.但是,我想让它消失,因为它很烦人.我该如何解决?
小智 24
事实证明,为了更新本地仓库<remote>/HEAD
指向哪个分支的视图,你可以让git自动从远程获取该信息并在本地为你设置,而不必git symbolic-ref
像我一样手动设置它.旧解决方案:
git remote set-head <remote> --auto
# Or shorter
git remote set-head <remote> -a
Run Code Online (Sandbox Code Playgroud)
请注意,此命令实际上不会更改远程repo本身的默认分支.为此,如果您有权访问它,您可能需要直接在远程仓库上使用git symbolic-ref
.
错误消息引用的问题是,显然libgit2正在尝试读取指向的远程默认分支refs/remotes/origin/HEAD
,但远程分支不存在,因此出错.
使用git branch -a
,我的本地仓库认为这origin/develop
是远程默认分支:
remotes/origin/HEAD -> origin/develop
Run Code Online (Sandbox Code Playgroud)
有一次origin/develop
确实是我origin
在GitHub上的回购中的默认分支,但它不再是master
分支了.该develop
分支已被删除,origin
因为不再需要它.
所以我通过手动更新本地引用origin/HEAD
以指向新的默认分支来修复此问题origin
:
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
或者,如果我还想在reflog中添加消息refs/remotes/origin/HEAD
:
git symbolic-ref -m "Update to new remote default branch" \
refs/remotes/origin/HEAD refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题.也可以看看:
归档时间: |
|
查看次数: |
7803 次 |
最近记录: |