我今天在尝试运行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

这应该能解决问题。

参rm . / /遥控器/产地/头

git gc

对我来说,这个问题的原因是在Windows的压缩文件夹中工作。当文件夹未压缩时,它破坏了包文件,引发了其他奇怪的问题,例如无法修剪不存在的分支。

唯一的修复方法是清除工作目录并再次克隆回购远程。幸运的是,我仍然可以推拉更新,以确保没有任何损失。现在一切都好了。

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'

如果您正在使用git工作树,请确保您正在执行

git worktree prune

在运行之前

git gc

我有一个工作树得到损坏,这似乎做的把戏后,删除损坏的工作树。Git修剪本身似乎不起作用。