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

如何修改已关闭PR中提交的用户名与邮箱?(原仓库为本人维护)

能不能修改已关闭PR里提交记录的用户名和邮箱?

嘿,作为原仓库的维护者,这事完全可以操作,不过因为你删了之前的fork仓库,得走点特殊流程,我给你掰扯清楚:

先搞明白底层逻辑

你关闭的那个PR,哪怕fork仓库删了,GitHub其实会保留PR里提交的快照。咱要做的就是把这些提交拉回本地,改完作者信息再推回原仓库,后续要么开新PR,要么自己留着修正后的分支就行。

具体操作步骤

  1. 把PR的提交拉到本地
    先记好那个已关闭PR的编号,比如是#123。在本地原仓库的文件夹里,跑这个命令:

    git fetch origin pull/123/head:pr-123-fix
    

    这行命令会把PR里的所有提交,拉到你本地一个叫pr-123-fix的新分支里。

  2. 批量替换用户名和邮箱
    接下来用Git的脚本批量改提交信息,在仓库根目录运行这段命令(记得把里面的旧邮箱、新用户名新邮箱换成你自己的):

    git filter-branch --env-filter '
    OLD_EMAIL="你的旧邮箱地址"
    CORRECT_NAME="你想要的新用户名"
    CORRECT_EMAIL="你想要的新邮箱地址"
    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 pr-123-fix
    

    它会把pr-123-fix分支里所有匹配旧邮箱的提交,作者和提交者信息都换成你指定的新内容。

  3. 强制推回原仓库
    因为改了提交历史,得强制推到原仓库的新分支:

    git push origin pr-123-fix --force
    
  4. 后续处理(可选)
    原PR已经关闭了,旧的提交记录不会被替换(毕竟fork删了),但你可以基于这个修正后的分支开个新PR,或者直接把这个分支合并到主分支里,看你需求。

要注意的小细节

  • 改提交历史是个“破坏性”操作,要是有其他人基于旧PR的提交做了修改,得提前沟通好,但你是维护者,这事应该可控。
  • 原已关闭PR里的旧记录还会留在GitHub上,但你可以在新PR里说明是修正了作者信息的版本,不影响后续维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:24:50