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

Git fork仓库始终显示领先上游提交 如何同步重置fork及本地仓库

操作方案

你之前操作失效的核心原因:git reset --hard origin/master里的origin指向你自己的fork仓库B,当时B的master本身就带那2个多余提交,重置到这个状态再强推自然不会改变仓库状态;另外git checkout original报错是正常的,original是远程仓库标识,不是可直接检出的分支名,不需要执行这步。
以下操作会完全清空本地所有未保存修改、清除fork仓库B上多余的2个提交,最终让B和原始仓库A、本地仓库和B完全对齐:

  • 进入本地B仓库的目录,先检查已配置的远程仓库列表
    git remote -v
    
    如果列表里没有指向原始仓库A的远程条目(通常命名为original或upstream),执行以下命令添加,把命令里的A仓库git地址替换成原始仓库A的实际克隆地址:
    git remote add original A仓库git地址
    
    如果之前配置过错误的original地址,先删除旧配置再重新添加:
    git remote remove original
    git remote add original A仓库git地址
    
  • 拉取原始仓库A的最新分支和提交数据
    git fetch original
    
  • 切换到本地主分支,硬重置到原始仓库A的主分支状态
    如果你的主分支是master就执行:
    git checkout master
    git reset --hard original/master
    
    如果你的主分支是main就把上面命令里的master替换为main。这步执行后本地仓库的代码、提交记录会和原始仓库A完全一致,所有本地修改、多余提交都会被清除。
  • 强制推送本地状态到fork仓库B,覆盖B上的旧提交记录
    主分支为master时执行:
    git push --force origin master
    
    主分支为main时替换对应分支名即可。
验证结果

操作完成后刷新fork仓库B的页面,之前显示的This branch is 2 commits ahead of A/master提示会消失,此时远程B和原始A、本地仓库和远程B的状态完全一致,新建pull request时不会再自动附带那2个多余提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:24:24