在開源協作開發中,很多時候我們會遇到這樣一種情況:
👉 我們想基于一個開源項目繼續開發,代碼要推送到自己的倉庫里;
👉 但原作者可能還會更新,我們也希望能隨時把最新的改動同步過來。
本文以 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 → 開發 → 合并)
學會這一招,你就能輕松維護自己的代碼庫,同時又不落下原作者的新功能。 🎉