From: Michael J Gruber Date: Fri, 17 Oct 2008 10:52:26 GMT Subject: Re: Removing some files from history Message-ID: <48F86E6A.7080102@fastmail.fm> In-Reply-To: <96ed5eac0810170338s292fe858s1c092428a44a7ad2@mail.gmail.com> Gennady Kushnir venit, vidit, dixit 17.10.2008 12:38: > 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