Answers:
我不明白这个问题的后果,但是正如该主题所建议,当我遇到这个问题时,我只是做了
$ mv .git/refs/remotes/origin/HEAD /tmp
(以防万一),然后
$ git gc
工作没有抱怨;我还没有遇到任何问题。
git prune为我工作,这是一种删除已在Git中积累但未被任何有用信息引用的数据的方法。
$ mv .git/refs/remotes/origin/HEAD /tmp $ git gc git prune
git gc对我来说
我遇到的问题(与上面的评论中提到的@Stavarengo相同)是默认远程分支(develop在我的情况下)已被删除,但仍在中引用.git/refs/remotes/origin/HEAD。
.git/refs/remotes/origin/HEAD在我的编辑器中打开显示以下内容:
ref: refs/remotes/origin/develop
我仔细编辑了它,以指向新的默认分支,一切都很好:
ref: refs/remotes/origin/master
提示我的线索是跑步git prune显示了此错误:
> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD
我认为解决方案如下,因为这似乎可行,但事实证明并没有真正解决问题。
git remote set-head origin --auto
git prune(如第一个命令输出中所建议的那样),因此我无法确切地说出是什么对我有所帮助-第一,第二或两者。
git remote set-head origin --auto修复了我的refs / remotes / origin / HEAD文件,而无需使用git prune
error: Multiple remote HEAD branches. Please choose one explicitly,并且不得不使用git remote set-head origin mybranch(当'mybranch'分支被检出时)才能使错误消失。
看起来您的symbol-refs可能已损坏...尝试用默认分支替换它,例如:例如,我的默认分支是master
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc
那应该解决它。
master为另一个分支develop。前几天我改回来自develop于master和我删除了旧的默认分支develop,但在我的工作目录下,文件.git/refs/remotes/origin/HEAD仍然指向refs/remotes/origin/develop不再存在。在这种情况下,删除文件确实可行。