如何修复GIT错误:HEAD:无效的reflog条目xxxxxxxxxxxxxxxx

时间:2016-09-09 10:17:48

标签: git git-log

我之前遇到过错误(GIT错误:对象文件为空)

error_object_file_is_empty

然后我使用how to fix GIT error: object file is empty?中提到的方法 在我将HEAD指针更新为一个好的对象后,它确实有效。但是当我重新启动机器时,发生了同样的错误(目标文件为空)。 我尝试QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { border: none; background: none; } QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { border: none; background: none; color: none; } 删除所有空文件并输入find . -type f -empty -delete然后发生新错误。(GIT错误:HEAD:无效的reflog条目xxxxxxxxxxxxxxxx)

error_invalid_reflog_entry

我的GIT有什么问题吗?还是仅仅因为我的不良行动? 以及如何解决这个问题?

2 个答案:

答案 0 :(得分:12)

要使用的命令是git reflog expire --stale-fix --all

这里的神奇之处在于--stale-fix选项,它将修剪任何指向无法访问的提交并引用丢失对象的reflog条目。

答案 1 :(得分:1)

<块引用>

要使用的命令是 git reflog expire --stale-fix --all

但请确保使用 Git 2.31(2021 年第一季度)

"git reflog expire --stale-fix"(man) 可用于通过删除引用对象的条目来修复引用日志,这些条目已被修剪掉,但不小心容忍丢失的对象。

请参阅 commit c809798Johannes Schindelin (dscho)(2021 年 2 月 10 日)。
(2021 年 2 月 17 日在 Junio C Hamano -- gitster --commit e68f62b 合并)

<块引用>

reflog expire --stale-fix:对丢失的物品大方

签字人:约翰内斯·辛德林

<块引用>

每当用户运行 git reflog(man) expire --stale-fix 时,最可能的原因是他们的存储库至少有点 em> 腐败。
这意味着很可能丢失了某些对象。

如果是这种情况,当前可以让命令在尝试标记所有可访问对象的阶段中止。

与其雪上加霜,不如保持温和,在这种情况下尽我们所能继续前进,只需忽略丢失的物体并继续前进即可。