git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jakub Narebski <jnareb@gmail.com>
Date
May 3, 2010, 22:45 UTC
Message-ID
<m3ocgwfvw2.fsf@localhost.localdomain>
In-Reply-To
<hrnidr$etm$1@dough.gmane.org>
Gelonida <gelonida@gmail.com> writes:
> We have a git repository, whose size we want to reduce drastically due
> to frequent clone operations and a slow network connection.
 
Why frequent *clone* operations, instead of using "git fetch" or
equivalent ("git pull" which is fetch+merge, or "git remote update")?
If network is slow, you can do what others did in similar situations:
use hook to allow only not to large fetches (to prevent cloning)
directly on server, and provide bundle (see git-bundle(1)) to "seed"
the clone; it can be on dumb server (served resumably), and can be
also served by BitTorrent or equivalent.
 
Show 10 quoted lines
> The idea is following:
> 
> * archive the git repository just in case we really have to go back in
> history.
> 
> 
> create a new git repository, which shall only contain last month's activity.
> 
> all changes before should be squashed together.
> It would be no problem if the very first commit remains unmodified.

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 later use grafts or refs/replaces/ mechanism to join "current" history with historical repository.

HTH.
-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: GelonidaNext: Gelonida
Message 2 of 5 in “how to delete the entire history before a certain commit”
  1. GelonidaMay 3, 2010
  2. Jakub NarebskiMay 3, 2010
  3. GelonidaMay 3, 2010
  4. Jakub NarebskiMay 3, 2010
  5. GelonidaMay 3, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.