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 \
-- --allThe --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