Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how can I remove the unwanted objects from my repo after filter-branch --subdirectory-filter

Tags:

git

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.

like image 413
jettero Avatar asked Apr 02 '09 12:04

jettero


1 Answers

filter-branch also keeps backup refs in .git/refs/original, which you'll also have to remove before gc'ing

like image 169
Pieter Avatar answered Oct 30 '22 11:10

Pieter