我有一个非常大的Git仓库(差不多20K提交,3GB +,10 +作者),我正在从Subversion迁移到Github。我已经使用nirvdrum's svn2git(而不是svn2git on gitorious)移动了回购,但是我没有设置作者文件来映射作者。还没有人使用这个回购,还没有人克隆它,我已经告诉所有人我做出的改变会破坏任何克隆。
所以,我想要做的是在提交历史中重写作者电子邮件,以便Github正确链接到那些Github用户。
我不想一次一个地重写它们(正如Change the author and committer name and e-mail of multiple commits in Git和Rewrite author of Git commits所建议的那样),因为每个作者需要大约30分钟(我已经通过这种方式做了一个作者)并且我想在repo中的所有分支上进行所有提交,而不仅仅是当前分支。
答案 0 :(得分:0)
将this answer扩展为Rewrite author of Git commits,以便在回购中包含多位作者和所有修订。
git filter-branch --env-filter '
if [ $GIT_AUTHOR_EMAIL = old_email1@whatever.com ];
then GIT_AUTHOR_EMAIL=new_email1@whatever.com;
fi;
if [ $GIT_AUTHOR_EMAIL = old_email2@whatever.com ];
then GIT_AUTHOR_EMAIL=new_email2@whatever.com;
fi;
if [ $GIT_AUTHOR_EMAIL = old_email3@whatever.com ];
then GIT_AUTHOR_EMAIL=new_email3@whatever.com;
fi;
export GIT_AUTHOR_EMAIL' -- --all