更改电子邮件git提交?

这个问题在这里已经有了答案:

  • 在Git 29个答案中更改多个提交的作者和提交者姓名和电子邮件

  • git filter-branch应该能够为你做到这一点; 本质上它用相同的SHA1重写了分支的整个提交历史记录。

    Github上有一个示例脚本演示了如何做到这一点; 它很短,所以我在这里复制它。

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_COMMITTER_NAME="$CORRECT_NAME"
        export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_AUTHOR_NAME="$CORRECT_NAME"
        export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
    

    您必须强制推送已过滤的分支,因为您已更改历史记录。 如果任何人分享你的分支,这将使他们的历史和你的分歧不一致 - 你需要让所有的合作者重新拉动编辑过的分支。 如果他们一直在旧分支上工作并作出承诺,他们可以将这些分支挑选到新分支上。

    您可能希望通过创建一个全新的分支并更新历史记录,然后让每个人都将其拖动,从而简化操作。 在这一点上,你可以都同意这是新的主分支,并在此基础上工作,或者只需让每个人删除旧主分支的副本并将新分支重命名master分支。

    链接地址: http://www.djcxy.com/p/28509.html

    上一篇: Change email on git commits?

    下一篇: Git change author of not pushhed commits