4

如何合并 git 用户?

我使用不正确的用户名进行了几次提交,现在它们显示在存储库历史记录中,我想将它们与我将用于 git 存储库的真实姓名合并。

我怎么做?

4

2 回答 2

6

我有这个脚本,我经常用它来编辑我的历史。您可以更改 if 子句中的名称或通过电子邮件或其他任何方式进行过滤:

git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_NAME" = "Jimmy McNulty" ];
        then
                GIT_COMMITTER_NAME="Jimmy McNulty";
                GIT_COMMITTER_EMAIL="me@example.com";
                GIT_AUTHOR_NAME="Jimmy McNulty";
                GIT_AUTHOR_EMAIL="me@example.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD
于 2012-11-13T09:52:17.423 回答
0

如果只有几个提交,您可以使用交互式 rebase 并每次强制作者和提交者。

请注意,这将使您的分支提示以及任何人可能拥有的任何内容都无效,因此,如果您不是一个人工作并且已经将您的提交推送到某个地方,那么这对每个人来说都是一种痛苦。

您还可以使用重写您的历史记录git filter-branch(尽管您必须弄清楚自己如何做到这一点,因此首先要备份东西;-))(编辑:好的,您不必弄清楚,也许,您可以开始关闭 Oin 的回答)。

于 2012-11-13T09:52:49.017 回答