iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
自我挑戰組

Git 與 GitHub 入門日誌系列 第 18

Day 18:保持 Fork 與原始專案同步(Upstream Remote)

  • 分享至 

  • xImage
  •  

今天要學習的是:同步 Fork

當你 Fork 一個專案後,時間一久,
原始專案(Original Repo)可能會持續更新(可能有更多協作者),
而你的 Fork 版本就會「落後」。
如果不去同步,
當你再次送 PR 時,就可能出現 大量衝突(conflict) 或修改不相容的問題
因此,我們需要在本地設定一個 upstream remote 來追蹤原始專案,並定期同步。
今天的實作就是要來設定它!那我們馬上開始~


步驟1: 查看remote狀態

git remote -v

如果像圖片一樣,這代表目前只連結到你自己的 Fork,還沒有連到原始專案。
https://ithelp.ithome.com.tw/upload/images/20250927/20169195DAodIvwr5p.png

步驟2: 新增upstream
upstream指的就是原始專案的repo!!!

git remote add upstream https://github.com/原始作者/original-project.git
git remote -v

https://ithelp.ithome.com.tw/upload/images/20250927/20169195dv1CqqFD9G.png

步驟3: 抓取原始專案的最新更新
接下來,
我們要把原始專案的最新更新抓下來,
但注意!!這時候還沒有合併

git fetch upstream

https://ithelp.ithome.com.tw/upload/images/20250927/20169195LV3OWZ3C8t.png

步驟4:合併到你的分支
我們切換回主支,進行合併。

git checkout main
git merge upstream/main

確認後,你可能會出現下圖的情況。
https://ithelp.ithome.com.tw/upload/images/20250927/20169195FtTj7X5G0d.png

這是 Git 自動進入了互動式編輯器(通常是 vim 或 nano)
讓你可以在這裡輸入這次合併(merge)的 commit 訊息。
那我們這邊先直接退出並使用預設訊息就好。
要退出的話,
鍵盤按 :wq → Enter
w = write (寫入)
q = quit (離開)
就會退出並使用預設的 merge commit 訊息。
https://ithelp.ithome.com.tw/upload/images/20250927/20169195A7ZEr6gwyL.png

如果像圖上一樣沒有發生衝突,
就代表我們的 Fork 已經和原始專案同步了!

步驟5: 推送到你的 Fork
最後,把同步後的版本推到 GitHub 上,就完成囉~

git push origin main

以上就是關於PR的基礎學習,
明天會學習更多協作內容~敬請期待!


上一篇
Day 17:Pull Request 流程
下一篇
Day 19:Code Review 實戰 — 如何給出與接受意見
系列文
Git 與 GitHub 入門日誌19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言