Github 上的 Fork 了一些 Repository,但是這些 Repository 還是需要從來源持續更新,Github 說明了怎麼處理這部分,這邊順便紀錄一下。
其處理方式就是建立一個新的 remote 位置給原始來源,然後 fetch 更新資料,最後再進行 merge,以下使用我 Github 上 Fork 的 Repository
假設 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
參考資料