Оборванный коммит не находится в reflog и не удалится git gc

Я получил висячий коммит, которого нет в reflog (или я его неправильно использую) и который не исчезнет git gc, Вот что я имею в виду:

% git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (5425/5425), done.
dangling commit e681384da8babd4524f545bd880dfc602d271e45
dangling blob 77835dc1395f57d359d81f2c240d02a6ff1e9a69
...

% git reflog | grep e681

% git gc
Counting objects: 5425, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1585/1585), done.
Writing objects: 100% (5425/5425), done.
Total 5425 (delta 2086), reused 5425 (delta 2086)

% git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (5425/5425), done.
dangling commit e681384da8babd4524f545bd880dfc602d271e45
dangling blob 77835dc1395f57d359d81f2c240d02a6ff1e9a69
...

Также нет ничего, что объяснило бы это для меня:

% git config gc.reflogExpireUnreachable

% git config gc.pruneExpire

Я вижу, что фиксация вернулась и имеет историю с первых дней:

% git log e681384da8babd4524f545bd880dfc602d271e45 --oneline | tail -n 2
b50e1de base file structure
9a4b3af first commit

Но почему этот коммит не уйдет?

Я очень хочу это знать, потому что это так хорошо для меня не имеет смысла:D

0 ответов

Другие вопросы по тегам