How to remove files from Git history
Opps you put some sensistive data in your git repo.
Oh shoot, I just pushed up a pull request with some sensistive or secret values in it. I’ve been there, it happens when you get a bit tired and are trying to get a deadline out the door.
No problem, git filter-branch to the rescue. It allows you to rewrite your history and then you will have to force the push up to the origin to rewrite the history remotely as well. The way to do this is to filter the branch and then remove the file from all the specific hashes and the git log.
Example with an application.properties file:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch src/resources/application.properties' \
--prune-empty --tag-name-filter cat -- --allThis removes the application.properties from the cache and the index git uses to keep the history.
Or maybe you put something in a Dockerfile:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch Dockerfile' \
--prune-empty --tag-name-filter cat -- --allFor more details check out Github’s Delete from repo page