通过电子邮件替换提交历史记录

时间:2019-10-08 21:16:04

标签: bash git github commit git-rewrite-history

提交回购邮件时,我一直使用错误的电子邮件。

我发现this script使我可以替换错误的提交。它确实起作用,但是原始的错误提交仍然存在。

因此,现在仓库有15个错误的提交+ 15个正确的提交,而不是15个错误的提交。

Here's what the history looks like now.

我做错了什么,还是我还缺少进一步的步骤?

1 个答案:

答案 0 :(得分:0)

您将需要使用过滤分支

git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
        then
                GIT_COMMITTER_NAME="<New Name>";
                GIT_AUTHOR_NAME="<New Name>";
                GIT_COMMITTER_EMAIL="<New Email>";
                GIT_AUTHOR_EMAIL="<New Email>";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD `

如果您是致力于此存储库的 ONLY 用户,则只需更新所有引用,而无需检查旧内容

git filter-branch -f --env-filter '
    GIT_AUTHOR_NAME="Newname"
    GIT_AUTHOR_EMAIL="newemail"
    GIT_COMMITTER_NAME="Newname"
    GIT_COMMITTER_EMAIL="newemail"
  ' HEAD
相关问题