【发布时间】:2020-02-06 04:52:11
【问题描述】:
我在提交我的仓库时使用了错误的电子邮件。
我发现 [这个脚本][1] 可以让我替换错误的提交。它确实有效,但原来的错误提交仍然存在。
因此,现在 repo 有 15 个错误提交 + 15 个正确提交,而不是 15 个错误提交。
【问题讨论】:
标签: bash git github commit git-rewrite-history
我在提交我的仓库时使用了错误的电子邮件。
我发现 [这个脚本][1] 可以让我替换错误的提交。它确实有效,但原来的错误提交仍然存在。
因此,现在 repo 有 15 个错误提交 + 15 个正确提交,而不是 15 个错误提交。
【问题讨论】:
标签: bash git github commit git-rewrite-history
你需要使用过滤器分支
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
【讨论】: