I'm using
git filter-branch --subdirectory-filter dir/name -- --all
to build a repo that only has history relating to that dir/name. Before I do the filter, I clone the original repo (which is very much bigger) into a tmp dir. After the filter-branch, the repo looks just how I want it, with one exception: It seems to still contain all the objects from the original repo even though they're not shown in "git log."
How can I remove all those unwanted objects completely?
I've tried things like:
git reflog expire --expire=now --all
git gc --aggressive --prune=now
It's clear to me that I don't know why they're still there or what it means to remove them, but I'd sure like to. A bit of possibly related information working against me is that I had done a git repack -a on my source repo a while back and it seems to copy that packfile over to the new repo. Seems like I should still be able to do what I want though.
filter-branch also keeps backup refs in .git/refs/original, which you'll also have to remove before gc'ing
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With