From: Christof Krüger Date: Tue, 28 Jun 2011 07:04:59 GMT Subject: Re: removing files from history but not filesystem Message-ID: <218bf1d3b2bf197a5f56d542c6a91960.squirrel@mail.localhost.li> In-Reply-To: Hi, > $ git filter-branch --index-filter 'git rm --cached --ignore-unmatch > */one.txt' HEAD The following should work: git branch temp git filter-branch --index-filter 'git rm --cached --ignore-unmatch foo' temp git reset temp This creates branch "temp" pointing to the same commit as "master". Then you filter-branch the "temp" branch. This leaves file "foo" in your working directory intact, as your current branch is actually "master". The third step resets your current "branch" to the commit pointed by the rewritten branch "temp". The default for git reset is --mixed which according to the man page leaves the working tree alone. Regards, Chris