At the end, the extracted screenshot from the source tree of the SourceTree branches is shown (there is a gap in the middle of the screenshot)
In this case, #1 points to the line that was used for branching on 1.7.6.14.X and #2 , indicates the current status of the same branch.
The end referenced by #3 , and the previous 8 commits to this line, were previously attached to the 1.7.6.14.X branch. Then another developer allegedly checked one branch and made the fix pointed to by #4 . This #4 commit removed the former 9 commits from the 1.7.6.14.X branch and left them hanging out.
As a result, the branch 1.7.6.14.X now starts from the starting branch point, and not just from commit #3 .
Running git fsck with --unreachable , --dangling etc. does not give any errors. I tried --lost-found .
However, git fsck <hash of commit #3> creates five dangling commits and a whole chain of hanging tags:
Checking object directories: 100% (256/256), done. Checking objects: 100% (3148/3148), done. dangling commit ec213... dangling commit ab82a... dangling commit 7d262... dangling commit a6f06... dangling commit 6674a...
I have two questions:

Update
We found the answer to question (1). The situation was caused by a forceful push of a central bare repo by a developer who had an old snapshot of a branch.
git git-commit git-dangling
Upendra
source share