我今天在尝试运行Git垃圾收集时偶然发现了这个:
$ git gc
fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack
我该怎么处理呢?
我今天在尝试运行Git垃圾收集时偶然发现了这个:
$ git gc
fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack
我该怎么处理呢?
当前回答
git update-ref -d [wrong reference here]
这将解决这个问题。
以上问题使用以下代码:
git update-ref -d 'refs/remotes/origin/HEAD'
以防你在使用.git时出现如下错误:
error: bad ref for .git/logs/refs/remotes/origin/Dec/session-dynatrace-logs 6
你可以从下面的引用开始复制路径:
git update-ref -d 'refs/remotes/origin/Dec/session-dynatrace-logs 6'
其他回答
看起来你的符号裁判可能坏了… 试着用你的默认分支替换它,就像这样: 例如,我的默认分支是master
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc
这应该能解决问题。
我的问题发生在一个特定的分支。 显然分支的参考文件被破坏了。我把它修好了。
Git checkout main //我删除了文件。git\refs\heads\branch_xpto git拉 Git签出branch_xpto
如果您正在使用git工作树,请确保您正在执行
git worktree prune
在运行之前
git gc
我有一个工作树得到损坏,这似乎做的把戏后,删除损坏的工作树。Git修剪本身似乎不起作用。
在看到Trenton的答案后,我查看了我的.git/refs/remotes/origin/HEAD,发现它也指向一个旧的分支,现在已经删除了。
但我没有自己编辑文件,而是尝试了Ryan的解决方案:
git remote set-head origin --auto
它会自动将文件设置为新的分支,git gc在那之后工作得很好。
我遇到的问题(这与@Stavarengo在上面的评论中提到的问题相同)是默认的远程分支(在我的情况下是开发)已经被删除,但仍然在.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