You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在共享Git仓库中修正特定用户的提交历史信息

修复Git提交中错误的姓名与邮箱

步骤1:创建正确的.mailmap文件

针对你需要修正的两个错误条目,在仓库根目录创建.mailmap,每行对应一组「目标正确信息→待修正错误信息」的映射,格式如下:

NameLine4 <MailLine4> NameLine2 <MailLine2>
NameLine4 <MailLine4> NameLine3 <MailLine3>

注意:每行前半部分是你要统一成的正确姓名邮箱,后半部分是需要替换的错误条目,每个错误条目单独占一行。

步骤2:用git filter-repo定向修正你的提交

为了避免误改其他贡献者的提交,添加过滤条件只处理你的错误邮箱对应的提交,执行以下命令(替换其中的错误邮箱为你实际的错误邮箱):

git filter-repo --force --mailmap .mailmap --commit-callback '
if commit.author_email in [b"错误邮箱1", b"错误邮箱2"] or commit.committer_email in [b"错误邮箱1", b"错误邮箱2"]:
    pass
else:
    skip()
'

步骤3:验证修正结果

执行命令检查提交统计:

git shortlog -sne

确认你的错误条目已合并到正确的NameLine4 <MailLine4>下,提交总数正确,且其他贡献者的条目未被修改。

步骤4:强制推送修正后的历史

由于重写了Git历史,需要强制推送到远程仓库(建议先备份远程仓库或本地仓库):

git push --force-with-lease origin 你的分支名

使用--force-with-lease比直接--force更安全,可避免覆盖他人刚推送的提交。

重要注意事项

  • 执行git filter-repo前务必备份仓库,该命令会永久修改历史,出错后难以恢复。
  • 如果之前的操作已导致仓库混乱,可通过Git reflog或远程仓库备份恢复到操作前的状态,再重新执行上述步骤。

内容的提问来源于stack exchange,提问作者bbasaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:45:37