- by admin
Once upon a time, namely today, I run
# git status
and to my big surprise I have got:
# On branch master
# Your branch is ahead of 'origin/master' by 3 commits.
#
nothing to commit (working directory clean)
Actually I have not done any commits in this local master branch - only pulls from remote. So, next I did
git fsck --no-reflogs
which helped me to get so called ‘
dangling commits’ - commits that are under no particular branch:
git fsck --no-reflogs
dangling commit be6b64ba93d9e292b2aeec0a9d3c5209ee83c96f
dangling commit 3229271230d1315924ddd99c5962247d3c3f103b
dangling commit 95c0a7b1611ad0c4c101ff1fa1504d622fa1d2c3
What is exactly in the dangling commit? To get it I run:
git show be6b64ba93d9e292b2aeec0a9d3c5209ee83c96f
Next question: how to delete these dangling commits?
The answer is: wait :-)
Once your reflog entries are expired, those objects will then also be cleaned up by
git gc
Expiry settings are in gc.pruneexpire, gc.reflogexpire and gc.reflogexpireunreachable.