如何在Git仓库中重写提交者姓名?

8

我使用git svn将Subversion仓库转换为Git,但不幸的是,现在才发现有些作者信息是错误的。 转换后的仓库尚未与任何人共享,因此我想重写其中的提交日志 - 如果可能的话。

我该如何重写Git仓库,以便所有提交的日志都显示为例如:

Author: John Doe <john.doe@example.com>

替代

Author: John Do <john.do@example.com>

我尝试自己处理这个问题,似乎需要使用git-filter-branch命令。但是我没有成功实现。

1个回答

21

ProGit书籍提供了一个这样做的例子,这可能对您有帮助。

$ git filter-branch --commit-filter '
    if [ "$GIT_AUTHOR_EMAIL" = "schacon@localhost" ];
    then
            GIT_AUTHOR_NAME="Scott Chacon";
            GIT_AUTHOR_EMAIL="schacon@example.com";
            git commit-tree "$@";
    else
            git commit-tree "$@";
    fi' HEAD

10
不要忘记 GIT_COMMITTER_NAME - Ionuț G. Stan
1
这只在主分支上起作用。 - andrej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接