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

使用git filter-repo修改提交作者信息遇日期解析错误求助

Git Filter-Repo 修改错误作者信息的解决办法

问题根源

你错误地将邮箱也填入了作者姓名字段,Git解析提交身份信息时,会按照「姓名 <邮箱> 日期」的格式拆分内容。现在你的姓名里包含了邮箱和空格,导致Git把姓名中的「User.Name@email.com」误判为日期字段的一部分,进而触发日期解析错误。


方法一:用.mailmap批量修正(推荐)

这是最简洁的批量修正方式,适合所有包含错误作者信息的提交:

  • 新建一个.mailmap文件,写入以下内容:
    User Name <User.Name@email.com> User Name User.Name@email.com <User.Name@email.com>
    
    格式说明:正确姓名 <正确邮箱> 错误姓名 <错误邮箱>,用于映射错误信息到正确值。
  • 执行filter-repo命令应用修正:
    git filter-repo --mailmap .mailmap
    

方法二:用自定义脚本精准修改

如果只需要修改特定某次提交,或者需要更灵活的控制,可以用Python脚本过滤:

  • 新建fix_author.py脚本,内容如下:
    def fix_commit(commit):
        # 修正作者信息
        if commit.author_name == "User Name User.Name@email.com":
            commit.author_name = "User Name"
            commit.author_email = "User.Name@email.com"
        # 若提交者信息也有误,同步修正
        if commit.committer_name == "User Name User.Name@email.com":
            commit.committer_name = "User Name"
            commit.committer_email = "User.Name@email.com"
        return commit
    
  • 执行命令应用脚本:
    git filter-repo --commit-callback fix_author.py
    

重要提醒

  • 执行git filter-repo前必须备份仓库(复制整个仓库文件夹即可),因为该命令会重写整个提交历史。
  • 如果仓库已推送到远程,修改后需要强制推送:git push --force,记得通知协作的同事同步更新本地仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:00:01