Re: Removing some files from history
- From
Michael J Gruber <michaeljgruber+gmane@fastmail.fm>
- Date
- Oct 17, 2008, 10:52 UTC
- Message-ID
- <48F86E6A.7080102@fastmail.fm>
- In-Reply-To
- <96ed5eac0810170338s292fe858s1c092428a44a7ad2@mail.gmail.com>
Gennady Kushnir venit, vidit, dixit 17.10.2008 12:38:
Show 12 quoted lines
> Hello all > I'm not yet subscribed, but I wish I shall get reply anyway > > I'm going to make my repository public, but I have found that one of > my files contains some private data that I would not like to share. > Is it possible to remove that file from all commits in my local > repository history before publishing it? > Or it would be easier to start publishing with just my current state > (whith all private data cleaned up)? > > Thanks in advance. > Gennady
Use
git filter-branch --index-filter 'git rm --cached secret' -- --all
or
git filter-branch --tree-filter 'rm -f secret' -- --all
where 'secret' is the name of the file to be removed.
After that, make sure you clean up your repo before publishing: Clean out the original references (command on 1 line):
git for-each-ref --format='%(refname)' refs/original |while read ref; do git update-ref -d $ref;done
Clean out the reflog:
git reflog --expire=0 expire
Remove the old objects and packs:
git prune git repack -adf
[Makes me feel this should be easier.]
Michael