如何将Fork的repo重置为与上游原始repo一致并查看差异commit?
查看Fork与上游仓库的差异Commit
操作前提:先在本地仓库目录绑定上游远程仓库(仅需执行一次)
git remote add upstream <上游原始仓库的HTTPS/SSH地址>
然后拉取上游所有最新提交数据:
git fetch upstream
- 查看你的Fork比上游多出的Commit:
git log --oneline upstream/main..HEAD(如果主分支名称是master,把main替换为master即可,下同) - 查看上游仓库比你的Fork多出的Commit:
git log --oneline HEAD..upstream/main
清理多余Commit,对齐目标状态
注意:以下操作会丢弃你Fork中所有未同步到目标节点的修改,操作前请自行备份重要代码
情况1:对齐上游仓库最新状态
- 切换到本地主分支:
git checkout main - 强制重置本地分支到上游最新提交节点:
git reset --hard upstream/main - 强制推送本地修改到你的Fork远程仓库:
git push origin main --force
如果你的远程仓库开启了主分支保护,需要先临时关闭分支保护规则,推送完成后再恢复即可。
情况2:对齐首次Fork时的原始状态
首先通过前面的git log命令找到你首次Fork时对应的上游Commit哈希值(格式为7位左右的字符串),再执行以下操作:
- 切换到本地主分支:
git checkout main - 强制重置到目标Commit节点:
git reset --hard <你找到的目标Commit哈希> - 强制推送本地修改到你的Fork远程仓库:
git push origin main --force
内容的提问来源于stack exchange,提问作者Blackwidow
相关产品推荐
相关产品推荐

