在开源协作开发中,很多时候我们会遇到这样一种情况:
👉 我们想基于一个开源项目继续开发,代码要推送到自己的仓库里;
👉 但原作者可能还会更新,我们也希望能随时把最新的改动同步过来。
本文以 Gitee 为例,手把手教你如何操作。
一、场景说明
假设:
-
原作者的仓库地址:
https://gitee.com/zhijiantianya/ruoyi-vue-pro.git
-
你在 Gitee 新建了自己的仓库:
https://gitee.com/yourname/ruoyi-vue-pro.git
-
本地一开始是
clone
下来的原作者代码。
目标是:
- 自己的仓库作为主要开发仓库(origin)。
- 原作者的仓库作为更新来源(upstream)。
- 日常开发推送到自己的仓库;需要更新时从原作者拉取。
二、操作步骤
1. 重命名远程仓库
你本地现在的 origin
指向原作者仓库,先改名为 upstream
:
git remote rename origin upstream
2. 添加自己的仓库作为新的 origin
git remote add origin https://gitee.com/yourname/ruoyi-vue-pro.git
3. 检查远程仓库
git remote -v
输出应类似:
origin https://gitee.com/yourname/ruoyi-vue-pro.git (fetch)
origin https://gitee.com/yourname/ruoyi-vue-pro.git (push)
upstream https://gitee.com/zhijiantianya/ruoyi-vue-pro.git (fetch)
upstream https://gitee.com/zhijiantianya/ruoyi-vue-pro.git (push)
4. 推送到自己的仓库
第一次推送:
git push -u origin master
(如果默认分支是 main
就改成 main
)
三、以后如何同步原作者更新
每次想获取原作者更新时:
# 1. 拉取原作者更新
git fetch upstream# 2. 切换到主分支
git checkout master # 或 main# 3. 合并原作者的更新
git merge upstream/master# 4. 推送到自己的仓库
git push origin master
这样你的仓库就和原作者保持同步啦。
四、完整流程图
下面是一个小白也能看懂的操作流程图 👇
+-------------------------+| 原作者仓库 (upstream) || gitee.com/zhijiantianya |+-----------+-------------+|git fetch / merge|v
+-------------------------+ git push +---------------------------+
| 本地仓库 | -----------------------> | 个人仓库 (origin) |
| D:\02_Workspace\jxc... | | gitee.com/yourname/ruoyi |
+-------------------------+ +---------------------------+
五、日常使用总结
- 开发提交 → 提交到本地,再
push
到自己的仓库(origin)。 - 获取更新 →
fetch upstream
→merge
到本地主分支 →push
到自己的仓库。 - 保持清晰 → 记住:
origin
= 你自己的仓库,upstream
= 原作者仓库。
六、写在最后
这种方式非常适合:
- 二次开发开源项目
- 自己定制化版本,但又想跟进官方更新
- 团队内部协作(fork → 开发 → 合并)
学会这一招,你就能轻松维护自己的代码库,同时又不落下原作者的新功能。 🎉