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

其他回答

我的问题发生在一个特定的分支。 显然分支的参考文件被破坏了。我把它修好了。

Git checkout main //我删除了文件。git\refs\heads\branch_xpto git拉 Git签出branch_xpto

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'

我遇到了同样的问题,当我试图从起源分支拉,我得到了以下错误:

fatal: bad object refs/remotes/origin/account

出于某种原因,上述解决方案对我来说并不管用。总是得到这个错误

mv: cannot stat '.git/refs/remotes/origin/HEAD': No such file or directory

运行git gc会给出这样的错误:

error: bad ref for .git/logs/refs/remotes/origin/account
fatal: bad object refs/remotes/origin/account
fatal: failed to run repack

在我的情况下,远程分支指向一个不存在的分支。

为我修复它的是删除分支

git branch -D account

同时从。git/refs/remotes/origin/account中删除

一切都很完美。

谢天谢地,我找到了这个 https://makandracards.com/chris-4/54101-fixing-a-git-repo

fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack

如果上游分支已经被移除,而您的原点指向它,则可能会发生这种情况。你可以通过运行:

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

如果它指向一个不存在的分支,运行:

Git远程set-head origin——auto

紧随其后的是

git gc

会解决的

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

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