You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GitHub Desktop同步后Fork仓库显示超前3次提交,如何对齐原仓库?

解决Fork仓库显示超前原仓库但内容一致的问题

嘿,我来帮你搞定这个Git小麻烦!这种情况通常是因为你同步原仓库时用了默认的Pull操作(它会自动创建合并提交),这些额外的合并提交在原仓库里不存在,所以你的fork才会显示“超前3次提交”,但实际内容是和原仓库一致的。下面是用GitHub Desktop和命令行两种方法来对齐你的fork和原仓库:

方法一:用GitHub Desktop操作

  • 第一步:先确认本地仓库没有未提交的更改(GitHub Desktop主界面没有红色/绿色的文件,所有更改都已提交或丢弃)。
  • 第二步:切换上游仓库为原仓库:点击菜单栏Repository -> Repository Settings -> Remote,把Primary Remote Repository改成原仓库的地址,然后点击Save
  • 第三步:拉取原仓库最新代码:点击主界面的Fetch Origin,等完成后再点击Pull Origin(确保本地分支和原仓库完全同步)。
  • 第四步:重置本地分支到原仓库状态:点击菜单栏Branch -> Reset current branch to...,在弹出的窗口里选择Hard reset(⚠️ 注意:硬重置会丢弃本地所有未提交的更改,一定要确认本地没有需要保留的内容!),然后选择原仓库的对应分支(比如upstream/main或者原仓库的分支名),点击Reset
  • 第五步:切回你的fork仓库:再次进入Repository Settings -> Remote,把Primary Remote Repository改回你的fork仓库地址,点击Save
  • 第六步:强制推送到你的fork:点击主界面的Push Origin,此时会弹出提示说本地分支落后于远程,需要强制推送,选择Force Push(⚠️ 这只会覆盖你自己fork的历史,放心操作就行)。

完成后你的fork仓库就会和原仓库的提交历史完全一致,不会再显示超前提交,也不会提示你提PR了。

方法二:用命令行操作(更直接)

如果你习惯用命令行,步骤如下:

  1. 确保已添加原仓库为上游远程(如果之前没加过):
git remote add upstream <原仓库的Git URL>
  1. 拉取原仓库的最新代码:
git fetch upstream
  1. 重置本地主分支到原仓库的主分支(比如main分支):
git reset --hard upstream/main
  1. 强制推送到你的fork仓库:
git push origin main --force

注意事项

  • 硬重置(Hard reset)和强制推送(--force)会修改提交历史,所以只在你自己的fork仓库上操作,不要在多人协作的公共仓库分支上使用。
  • 操作前一定要确认本地没有未提交的重要更改,否则会被丢弃!

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

火山引擎 最新活动