github Removing sensitive data or large files Using filter-branch


Example

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all

Add your file with sensitive data to .gitignore to ensure that you don't accidentally commit it again.

echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"

Push your local repo to GitHub

git push origin --force --all

In order to remove the sensitive file from your tagged releases, you'll also need to force-push against your Git tags:

git push origin --force --tags