如何同步更新 GitHub 上 fork 的仓库

同步 fork 仓库:git remote add upstream <原仓库地址> 一次配置,之后 git fetch upstream && git merge upstream/main(或 rebase)再 push 到自己 fork。GitHub 网页也有 Sync fork 按钮一键同步。

最佳实践
Git 分支协作与合并示意

命令行三板斧:① 添加原仓库为 upstream 远程(一次);② git fetch upstream;③ 合并 git merge upstream/main 并 push 到你的 fork。GitHub 网页端更简单:fork 仓库主页的 Sync fork 按钮点一下即可。

命令行方式

# 1. 添加上游远程(只做一次)
git remote add upstream https://github.com/原作者/仓库.git

# 2. 同步流程(之后每次)
git fetch upstream
git checkout main
git merge upstream/main        # 或 git rebase upstream/main
git push origin main           # 推到自己的 fork

网页方式

打开你的 fork 页面 → 右上 Sync fork → Update branch。注意:如果你 fork 的 main 上有自己的提交,网页同步会被拒,需要用命令行处理分叉。

保持功能分支同步

git checkout feature-x
git rebase upstream/main       # 个人分支推荐 rebase 保持线性

常见问题(FAQ)

Q:merge 报 "refusing to merge unrelated histories"?

先核对 upstream 是否指向正确仓库,并检查是否为缺少历史的浅克隆。普通 fork 分叉仍有共同祖先,不应直接使用 --allow-unrelated-histories。保留本地工作后再决定合并、rebase,或明确放弃改动并对齐上游。

Q:能自动保持同步吗?

GitHub 没有官方自动同步。可用 GitHub Actions 定时任务(schedule cron)跑 fetch+merge+push 实现,社区有现成的 sync 模板。

Q:fork 的仓库改了默认分支名怎么办?

上游从 master 改 main 后,本地 git remote set-head upstream -a 刷新默认分支引用,再正常同步。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台