Re: 500Mb file erroneously commited
On Mon, Jun 06, 2011 at 07:43:20AM +0000, Bartolomeo Nicolotti wrote:
Show 8 quoted lines
> Hello,
>
> we're using CVS to store some sources, but for some big projects I'm considering
> to use git. Last week it has happened that one collegue erroneously commited one
> big file, 500Mb the file only. To avoid to have this file in the repository
> we've deleted the history file in the CVS repository, the one with ,v, this has
> been easy as each file has its own history. Would it be possible to do the same
> with git, or there's no possibility to delete a 500Mb file erroneously commited?
Hi,
yes, you can. In fact, there are at least two situation:
- if you detect the error DIRECTLY after the commit (and have no other
commits on top of it), then a
git rm bigfile
git commit --amend
does the trick (well, the big file will be unused now, and be deleted
by the next "git gc")
- if you have already other commit's on top of it, you can use e.g.
"git rebase" in order to redefine the history... something like (I'm
not sure it works exactly like that, but in principle)
git checkout -b tmp <WRONG_COMMIT>
git rm bigfile
git commit --amend
git checkout master
git rebase tmpfix
git branch -d tmpfix
However, there if your tree has been already shared with other
developers, they also will have to change to the new and corrected
branch.
Axel