--- /dev/null
+#!/bin/sh
+
+# =============================================================================
+# This is a modified version of this:
+# https://help.github.com/articles/changing-author-info
+# =============================================================================
+
+
+FILTER_SCRIPT_TEMPLATE='
+an="$GIT_AUTHOR_NAME";
+am="$GIT_AUTHOR_EMAIL";
+cn="$GIT_COMMITTER_NAME";
+cm="$GIT_COMMITTER_EMAIL";
+
+if [ "$GIT_COMMITTER_EMAIL" = "OLD_COMMITTER_EMAIL" ];
+then
+ cn="$GIT_COMMITTER_NAME";
+ cm="NEW_COMMITTER_EMAIL";
+fi;
+
+if [ "$GIT_AUTHOR_EMAIL" = "OLD_AUTHOR_EMAIL" ];
+then
+ an="$GIT_AUTHOR_NAME";
+ am="NEW_AUTHOR_EMAIL";
+fi;
+
+export GIT_AUTHOR_NAME="$an";
+export GIT_AUTHOR_EMAIL="$am";
+export GIT_COMMITTER_NAME="$cn";
+export GIT_COMMITTER_EMAIL="$cm";
+'
+
+
+git_filter_branch() {
+ git filter-branch -f --env-filter "$1"
+}
+
+
+main() {
+ old_email="$1"
+ new_email="$2"
+
+ filter_script=$(\
+ echo $FILTER_SCRIPT_TEMPLATE \
+ | sed "s/OLD_COMMITTER_EMAIL/$old_email/g" \
+ | sed "s/NEW_COMMITTER_EMAIL/$new_email/g" \
+ | sed "s/OLD_AUTHOR_EMAIL/$old_email/g" \
+ | sed "s/NEW_AUTHOR_EMAIL/$new_email/g" \
+ )
+
+ git_filter_branch "$filter_script"
+}
+
+main "$@"