You don't identify yourself
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
Вопрос, а SHA1 при этом не ломаются? Из чтения мануала к git у меня вынеслось впечатление, что все эти переписывания истории в git гораздо чаще вылазят боком, чем действительно полезны (оставим особенности разработки linux кернелхакерам). Особенно, если репозиторий публичный. А в частном, не всё ли равно?
В общем, вопрос: если сделать так, как советуешь на уже опубликованном репозитории, какие могут быть побочные эффекты?
permalink
Не думаю, что при изменении метаданных поломаются SHA1. И переписывание истории будет выглядеть для пользователей, вытягивающих что-то из твоего публичного репозитория, тоже не очень представляю, но это можно проверить, склонировав репозиторий куда нибудь в сторонку, а после изменения origin, сделав pull.
Опаснее всего переписывание самой истории коммитов, нежели метаданных. В любом случае, перед экспериментом лучше сделать бэкап.
If you wish to leave comment, please, identify yourself and then come back to this page.