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
不再存在。在这种情况下,删除文件确实可行。