Оборванный коммит не находится в 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