Im trying to purge a projects bin directory from Git history. I have already added 'bin' to .gitignore and run $git rm --cached -r bin
successfully. Now I have tried using the command as recommended in the GitHub help pages to purge the history:
$ git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch bin' \
--prune-empty --tag-name-filter cat -- --all
But this results in errors:
Rewrite <hash> (1/164) fatal: not removing 'bin' recursively without -r
index filter failed: git rm --cached --ignore-unmatch bin
rm: cannot remove 'c:/pathToMyLocalRepo/.git-rewrite/revs': Permission denied
rm: cannot remove directory 'c:/pathToMyLocalRepo/.git-rewrite': Directory not empty
There's no other programs holding /revs open. /revs does not exist in the specified path and .git-rewrite is empty.
I am not sure where exactly I should add the -r? Is the command incorrect otherwise?
I do, of course, need to keep bin itself in the local local repo as this is my working dir.
Thanks
Okay so all I needed to do was add the -r to the rm command part (as below). I guess this is because bin is a directory rather than a file, so it must be removed recursively as otherwise the files it contains (or the information about them) would be orphaned.
I followed this with the below to push the changes to the remote repo on github