如何在git存储库中重写提交者名称?


How do I rewrite committer names in a git repository?

本问题已经有最佳答案,请猛点这里访问。

我使用git svn将一个Subversion存储库转换为git,但不幸的是,直到现在才注意到一些作者信息是错误的。转换后的存储库尚未与任何人共享,因此我想重写其中的提交日志(如果可能的话)。

如何重写Git存储库,以便显示所有提交的日志,例如

1
Author: John Doe <[email protected]>

而不是

1
Author: John Do <[email protected]>

我自己也试过这样做,似乎Git过滤器分支就是我需要的。不过,我没能做到这一点。


程序书有一个这样做的例子,可能对你有用。

1
2
3
4
5
6
7
8
9
$ git filter-branch --commit-filter '
    if ["$GIT_AUTHOR_EMAIL" ="schacon@localhost" ];
    then
            GIT_AUTHOR_NAME="Scott Chacon";
            GIT_AUTHOR_EMAIL="[email protected]";
            git commit-tree"$@";
    else
            git commit-tree"$@";
    fi' HEAD