Theme NexT works best with JavaScript enabled

ShunNien's Blog

不積跬步,無以致千里;不積小流,無以成江海。

0%

Github 上 Fork Repository 其來源 Repository 的紀錄同步更新

Github 上的 Fork 了一些 Repository,但是這些 Repository 還是需要從來源持續更新,Github 說明了怎麼處理這部分,這邊順便紀錄一下。

其處理方式就是建立一個新的 remote 位置給原始來源,然後 fetch 更新資料,最後再進行 merge,以下使用我 Github 上 Fork 的 Repository

my repo
source repo

假設 Repository 已經 clone 下來了,進入該 Repository 位置

1
2
3
4
5
6
7
8
9
10
11
D:\Projects\Reference
$ git clone git@github.com:shunnien/lodash.git
Cloning into 'lodash'...
remote: Counting objects: 68089, done.
remote: Total 68089 (delta 0), reused 0 (delta 0), pack-reused 68089
Receiving objects: 100% (68089/68089), 44.11 MiB | 6.55 MiB/s, done.
Resolving deltas: 100% (46903/46903), done.
Checking out files: 100% (406/406), done.

D:\Projects\Reference
$ cd lodash\

這邊可以使用 git remote -v 來檢查遠端 Repository 的設定

1
2
3
4
D:\Projects\Reference\lodash (master)
$ git remote -v
origin git@github.com:shunnien/lodash.git (fetch)
origin git@github.com:shunnien/lodash.git (push)

接著加入原始遠端 Repository 的設定

1
2
D:\Projects\Reference\lodash (master)
$ git remote add upstream git@github.com:lodash/lodash.git

設定完成後,就是 fetch 資料回來了。

1
2
3
4
5
6
7
8
9
10
11
12
D:\Projects\Reference\lodash (master)
$ git fetch upstream
remote: Counting objects: 10, done.
remote: Total 10 (delta 7), reused 8 (delta 7), pack-reused 2
Unpacking objects: 100% (10/10), done.
From github.com:lodash/lodash
* [new branch] 3203 -> upstream/3203
* [new branch] amd -> upstream/amd
* [new branch] es -> upstream/es
* [new branch] master -> upstream/master
* [new branch] npm -> upstream/npm
* [new branch] npm-packages -> upstream/npm-packages

最後的 merge 一般來說都是合併到 master 上的,假如想要其他分支上紀錄,自行切換合併

1
2
3
4
5
6
7
8
D:\Projects\Reference\lodash (master)
$ git merge upstream/master
Updating 61acdd0c2..01148a1df
Fast-forward
.internal/stringToPath.js | 4 ++--
dropRight.js | 8 ++------
invert.js | 5 +++++
3 files changed, 9 insertions(+), 8 deletions(-)

合併完成後,別忘記 push 上去遠端 Repository

sync complete repo

參考資料

歡迎關注我的其它發布渠道