2015年9月30日 星期三

Git 大哉問:如何為 Fork 出來的專案,同步上游的更新?

Standard


搭配使用 Git 進行開發工作,時常會碰到一個狀況,就是我們 fork 一個專案出來修改,但在我們在修改的同時上游有了更新,這時我們會想要把上游的更新同步下來。這是一個常見的問題,許多人不時會提出來詢問,事實上如果你去 Google ,多半能找到這樣一篇名為「Syncing a fork」的 Github 文件。雖然這篇文章已經把程序詳細列出來了,但還是有人看不太懂,原因是要搭配「Configuring a remote for a fork」這一篇文件一起看才知道來龍去脈。

簡單來說,我們要先把「上游(upstream)」的 repository 加入我們眼前正在修改的專案,然後把上游更新拉回來,最後再與我們現有程式碼合併。

首先,加入上游的 repository 並命名為「upstream」:
git remote add upstream https://github.com/YOUR_USERNAME/YOUR_FORK.git

未來想要更新前,可以使用 fetch 去拉上游的更新回來:
git fetch upstream

最後再把 upstream 的內容,與現有的正在修改的進行「合併」:
git merge upstream/master