Skip to content

Instantly share code, notes, and snippets.

@costis
Created November 21, 2012 16:42
Show Gist options
  • Select an option

  • Save costis/4125937 to your computer and use it in GitHub Desktop.

Select an option

Save costis/4125937 to your computer and use it in GitHub Desktop.
Modify Git history
# replace a string occuring to all .yml documents, everywhere in history.
# note: -i "" in sed was needed for OSX. Normally I would write 'sed -i -e "s/foo/bar/g"'.
git filter-branch --tree-filter 'find . -name "*.yml" -exec sed -i "" -e "s/some-config-parameter/new-config-parameter/g" {} \;' HEAD
# the above will create an internal git backup. Delete it with the following command:
git update-ref -d refs/original/refs/heads/master
# create a script with the following contents to change commiter/author name & email.
#!/bin/sh
git filter-branch --env-filter '
an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"
if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ]
then
cn="New Name"
cm="[email protected]"
fi
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]
then
an="New Name"
am="[email protected]"
fi
export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment