After moving Mercurial repository to Git you might want to update user names and emails.
The first step would be to see the all the names:
git log --format='%an <%ae>' | git log --format='%cn <%ce>' | sort | uniq
With this information in hand, we can adjust names with filter-branch:
git filter-branch --force --commit-filter '
OLD_NAME="^^unknown^^"
NEW_NAME="^^My name^^"
NEW_EMAIL="^^myemail@example.com^^"
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]; then
GIT_AUTHOR_NAME="$NEW_NAME"
GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]; then
GIT_COMMITTER_NAME="$NEW_NAME"
GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
git commit-tree "$@";
' --tag-name-filter cat -- --branches --tags --all
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin