From b42417a2783d08ada468df81e34e89f5794b0413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bone=CC=81r?= Date: Tue, 5 Apr 2011 12:44:05 +0200 Subject: [PATCH] Added scripts for removing files from git's history --- scripts/git-remove-history.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 scripts/git-remove-history.sh diff --git a/scripts/git-remove-history.sh b/scripts/git-remove-history.sh new file mode 100755 index 0000000000..9db67d2490 --- /dev/null +++ b/scripts/git-remove-history.sh @@ -0,0 +1,24 @@ +#!/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 + +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 \ No newline at end of file