This is just the answer to some of your problems, maybe it should leave a comment.
Records and blobs (blobs contain the contents of the file) are all objects in the DAG git, and the object becomes “hanging out” (inaccessible, orphaned or free) when nothing is referenced (i.e. is not part of the story) and git will clear the dangling objects, if you run git gc (removes dangling objects older than 2 weeks), and some git commands also run git gc --auto when they are executed with their operations.
When you make changes to the DAG (i.e., redirect, modify, or add content to the index), some objects will be replaced with new ones, and old objects will become overhanging.
You can run git fsck --unreachable to find objects that hang.
Note. Objects referenced by reflog are usually not considered dangling.
In your case, you may need to run git prune , git gc --agressive or git gc --prune=now to remove all the dangling objects (do not forget to make bakup first, just in case)
joran source share