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

如何将一个Git仓库迁移至另一个Git仓库的历史起始位置以实现PR合并?

跨无关仓库提交PR并保留提交历史的解决方法

具体操作步骤

  • 添加目标仓库为本地远程源并拉取所有提交:
    git remote add upstream <原仓库的GitHub地址>
    git fetch upstream
    
  • 获取原仓库的初始提交哈希(即最早的那个提交):
    git log --oneline --reverse upstream/main | head -1
    
    输出结果里的短哈希(比如a1b2c3)就是你需要的根提交标识。
  • 切换到你要提交PR的本地分支:
    git checkout <你的分支名>
    
  • 将你的分支所有提交变基到原仓库初始提交之后,让两个仓库历史产生交集:
    git rebase --root --onto <刚才获取的原仓库根提交哈希>
    
  • 检查提交历史是否符合预期(原仓库初始提交在前,你的提交在后):
    git log --oneline
    
  • 强制推送改写后的分支到你的fork仓库(因为历史已变更,必须用强制推送):
    git push -f origin <你的分支名>
    
  • 此时再去GitHub提交PR,系统会识别到两个分支有共同的初始提交,就能正常处理合并请求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:24:57