How to rewrite author's email in GIT

Published at 27, October 2008, author art. Tags: git, tips

Today I want to show you, how to rewrite GIT's history and change the author's email using git-filter-branch command.

Suppose, that you forget to setup you GIT config correctly, and all commits from you have wrong email. For example, all commits are made by Vasya Pupkin . Of cause, you want to correct this information, and git-filter-branch will help you.

Here is a simple call for git-filter-branch:

git-filter-branch \
--env-filter 'export GIT_AUTHOR_EMAIL="vasya@gmail.com"'

This command will rewrite all commits' information and change email to vasya@gmail.com. If you want, more smart behaviour can be added using shell statements like if.

Thats it. And don't forget to make a backup before you'll try to rewrite The History! :-)

Comments

Subscribe on this post's comments

permalink

18, November 2008, owner of http://sovety.blogspot.com/ said:

Вопрос, а SHA1 при этом не ломаются? Из чтения мануала к git у меня вынеслось впечатление, что все эти переписывания истории в git гораздо чаще вылазят боком, чем действительно полезны (оставим особенности разработки linux кернелхакерам). Особенно, если репозиторий публичный. А в частном, не всё ли равно?

В общем, вопрос: если сделать так, как советуешь на уже опубликованном репозитории, какие могут быть побочные эффекты?

permalink

19, November 2008, art said:

Не думаю, что при изменении метаданных поломаются SHA1. И переписывание истории будет выглядеть для пользователей, вытягивающих что-то из твоего публичного репозитория, тоже не очень представляю, но это можно проверить, склонировав репозиторий куда нибудь в сторонку, а после изменения origin, сделав pull.

Опаснее всего переписывание самой истории коммитов, нежели метаданных. В любом случае, перед экспериментом лучше сделать бэкап.

If you wish to leave comment, please, identify yourself and then come back to this page.