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

Re: how to squash a few commits in the past

From
Johannes Sixt <j.sixt@viscovery.net>
Date
May 6, 2010, 06:45 UTC
Message-ID
<4BE2659D.2070208@viscovery.net>
In-Reply-To
<loom.20100503T112508-677@post.gmane.org>
Am 5/3/2010 11:33, schrieb Gelonida:
Show 7 quoted lines
> One of the team members accidentally commited a very huge file together with
> some useful sources.
> a few commits later he noticed his error and removed the huge file.
> 
> The plan would be:
> - create a new git repository without the huge file
> - let everybody clone the new repository and continue working.
Use 'git filter-branch':
  git filter-branch \
    --index-filter 'git rm --ignore-unmatch --cached the/huge/file' \
    --prune-empty \
    -- --all

The --prune-empty removes the commit that removed the file from the history if the removal of the/huge/file was the only thing it did.

If you have tags that must be rewritten, add "--tag-name-filter cat" to the command before "--".

Try this in a backup copy or clone first!
-- Hannes
Previous: Gelonida
Message 8 of 8 in “how to squash a few commits in the past”
  1. GelonidaMay 3, 2010
  2. Michael J GruberMay 3, 2010
  3. GelonidaMay 3, 2010
  4. GelonidaMay 3, 2010
  5. GelonidaMay 3, 2010
  6. Ramkumar RamachandraMay 5, 2010
  7. GelonidaMay 5, 2010
  8. Johannes SixtMay 6, 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.