Subject: Re: how to delete the entire history before a certain commit

From: Gelonida <[email-masked]>
Date: Tue, 04 May 2010 01:58:20 +0200

Hi Jakub,

Jakub Narebski wrote:
> Gelonida <[email-masked]> writes:
>> Jakub Narebski wrote:
>>> Gelonida <[email-masked]> writes:
>>>
>>>> We have a git repository, whose size we want to reduce drastically 

>>> If you want to simply _remove_ history before specified commit,
>>> instead of squashing it, the best solution would be to use grafts to
>>> cauterize (cut) history, check using [graphical] history viewer that
>>> you cut it correctly, and then then use git-filter-branch to make this
>>> cut permanent.

> You can read about grafts in git-filter-branch(1) manpage, in
> gitrepository-layout(5) git repository layout description, and in
> gitglossary(7) a git glossary.
> 
> In short, each line in .git/info/grafts consist of sha1 id of object,
> followed by space-separated list of its effective (grafted) parents.
> So to cut history e.g. after commit a3eb250f996bf5e, you need to put
> line containing only this SHA-1 in .git/info/grafts file, e.g.:
> 
>   $ git rev-parse --verify a3eb250f996bf5e >> .git/info/grafts
>  
>> So the command to look for is git-filter-branch, right ?
>> I'll read the doc.
> 
> 
> As you would see in git-filter-branch(1) documentation, simple
> 
>   $ git filter-branch --all

The command
git filter-branch --all
did not work for me. it just fdisplays the help text.

however without '--all'
git filter-branch

seems to have worked.

Thanks a lot :-)