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

如何将Git仓库迁移至新GitHub账户并替换旧提交作者信息?

解决GitHub仓库迁移并替换提交作者信息的方法

一、克隆旧仓库的完整历史版本

先把旧仓库的裸库克隆到本地,确保能获取所有提交记录:

git clone --bare https://github.com/旧账户名/仓库名.git
cd 仓库名.git

二、批量替换提交作者信息

创建一个名为replace-author.sh的脚本,把旧账户的身份信息替换成新账户的:

#!/bin/sh

git filter-repo --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
' --force

提示:如果本地没装git-filter-repo,用包管理器安装即可(比如Mac用brew install git-filter-repo,Linux用对应发行版的包管理命令)

给脚本加执行权限并运行:

chmod +x replace-author.sh
./replace-author.sh

三、推送到新账户的仓库

先在新GitHub账户下创建空仓库(不要初始化README或.gitignore),然后把修改后的仓库推过去:

git push --force https://github.com/新账户名/仓库名.git

四、清理本地临时文件

完成推送后,删掉本地的裸库文件夹即可:

cd ..
rm -rf 仓库名.git

注意事项

  • 这个操作会重写所有提交历史,要是仓库有其他协作者,得通知他们重新克隆新仓库,避免后续提交冲突
  • 如果旧仓库里有多个旧账户的提交,可以在脚本里添加多组邮箱判断逻辑,实现批量替换
  • 操作前建议备份旧仓库,防止失误导致数据丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:48:30