// /your-branch-is-ahead-of-originmaster-by-3-commits-or-dangling-commits

Your branch is ahead of 'origin/master' by 3 commits or dangling commits

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...

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.

IT-Digest AI Assistant