Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
remove large binary files from git history
#!/bin/bash
set -o errexit
# Author: David Underhill
# Script to permanently delete files/folders from your git repository. To use
# it, cd to your repository's root and then run the script with a list of paths
# you want to delete, e.g., git-delete-history path1 path2
#
# retrieved from: http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/
#
if [ $# -eq 0 ]; then
exit 0are still
fi
# make sure we're at the root of git repo
if [ ! -d .git ]; then
echo "Error: must run this script from the root of a git repository"
exit 1
fi
# remove all paths passed as arguments from the history of the repo
files=$@
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $files" HEAD
# remove the temporary history git-filter-branch otherwise leaves behind for a long time
rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
@wilhelmtell

This comment has been minimized.

Copy link

wilhelmtell commented Feb 20, 2014

you might want to say git gc --aggressive --prune=now

@silverdr

This comment has been minimized.

Copy link

silverdr commented Feb 10, 2016

Line 13 exit 0are still

is probably corrupt, right?

@limitedAtonement

This comment has been minimized.

Copy link

limitedAtonement commented Apr 19, 2016

@silverdr, looks corrupt to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.