In my repo, I have sensitive files A, C, and a directory full of sensitive stuff I want to remove forever from the git repository. % ls A B C D sensitive_stuff % git --version git version 1.5.3.5 % git filter-branch --index-filter 'git update-index --remove A' HEAD Rewrite 5dd7d5f2d7d3a5f43c242188ac96294628267673 (7/7) Ref 'refs/heads/master' was rewritten These refs were rewritten: % ls B C D sensitive_stuff % git status # On branch master nothing to commit (working directory clean) Ok, so I guess it has done what I wanted. So, I try to remove the next file that has sensitive information in it: % git filter-branch --index-filter 'git update-index --remove C' HEAD Namespace refs/original/ not empty And there I am stuck: what do I do now? I did also try this (on a fresh clone of the original repo): % git filter-branch --index-filter 'git update-index --remove A C sensitive_stuff/*' HEAD Rewrite 5dd7d5f2d7d3a5f43c242188ac96294628267673 (7/7) Ref 'refs/heads/master' was rewritten These refs were rewritten: % ls B D sensitive_stuff/ % ls sensitive_stuff E F G So, that appears to have removed A and C, but it did nothing to the files in the subdirectory. Is there a way to remove the files in the subdirectory --- or, better, to simply remove the entire subdirectory? I did try reading the man page for this, and the first example is essentially what I want. It says "you will get the rewritten history saved in HEAD", but I'm not sure what I'm supposed to do next. Bill - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html