最近在GitHub上fork了別人的一個(gè)項(xiàng)目,是關(guān)于flutter學(xué)習(xí)的一個(gè)項(xiàng)目,Git地址如下:
https://github.com/simplezhli/flutter_deer.git,但是如果作者在這個(gè)項(xiàng)目上新增了一下功能,我fork到我自己GitHub上的項(xiàng)目如何保持同步的更新呢?
只需要下面三步:
- 把fork的項(xiàng)目克隆到本地倉庫中
- Configuring a remote for a fork
- Syncing a fork
下面第一次操作:
1. 把fork的項(xiàng)目克隆到本地倉庫中
git clone 我自己fork的大佬的項(xiàng)目的GitHub地址
這樣完成之后,就會(huì)發(fā)現(xiàn)我的本地倉庫中多了一個(gè)flutter的文件夾。說明已經(jīng)成功把倉庫克隆到本地了。
2. Configuring a remote for a fork
- 給當(dāng)前倉庫( fork )配置一個(gè) remote
- 主要使用
git remote -v查看遠(yuǎn)程狀態(tài)。
git remote -v
- 添加一個(gè)將被同步給 fork 遠(yuǎn)程的上游倉庫
git remote add upstream https://github.com/simplezhli/flutter_deer.git
這里后面的那個(gè)地址就是你fork的項(xiàng)目的源地址。
- 再次查看狀態(tài)確認(rèn)是否配置成功。
git remote -v
下面會(huì)多出兩個(gè)upstream,說明第二步已經(jīng)成功了。這就相當(dāng)于有一個(gè)管道在源項(xiàng)目和你fork的項(xiàng)目之間建立了,下面看看如何通信更新。
3. Syncing a fork
- 從上游倉庫 fetch 分支和提交點(diǎn),傳送到本地,并會(huì)被存儲(chǔ)在一個(gè)本地分支 upstream/master
git fetch upstream
/// 切換到本地主分支
git checkout master
- 把 upstream/master 分支合并到本地 master 上,這樣就完成了同步,并且不會(huì)丟掉本地修改的內(nèi)容。
git merge upstream/master
由于我是剛剛fork的,肯定是最新的項(xiàng)目了,所以提示Already up to date. 如果源項(xiàng)目有更新而你fork的項(xiàng)目沒更新的話,這里就會(huì)顯示不同了。
4. 這樣,就把源項(xiàng)目同步更新到你的本地倉庫中了。 如果再想更新到遠(yuǎn)程倉庫fork,只需要:
git push origin master
實(shí)操截圖:

image.png