RE: I have gone and done a bad thing - malformed tree objects
Show 21 quoted lines
> From: Junio C Hamano
> Sent: Tuesday, July 28, 2020 8:52 PM
>
> "Jason Pyeron" writes:
>
> > I was trying to "do stuff" using hash-object -t tree --stdin -w,
> > but I accidentally created trees where other trees were marked as
> > blobs. They were dangling and not connected to any actual commits
> > on my branches.
> >
> > After gc and fsck clean ups, everything reports well...
> >
> > Except:
> >
> > $ GIT_TRACE=1 git cat-file --batch-all-objects --batch=objecttype
>
> gc and fsck may not have pruned the dangling object yet, but
> --batch-all-objects is a request to enumerate objects that exist in
> the repository, regardless of their reachability from any ref.
>
> Perhaps "git prune --expire=now" would get rid of it?
Both that and
git -c gc.reflogExpire=now -c gc.reflogExpireUnreachable=now -c gc.rerereresolved=now -c gc.rerereunresolved=now -c gc.pruneExpire=now -c gc.worktreePruneExpire=now gc --prune=now --aggressive
leave it in.