Introduction
目標(biāo):在github上fork了其他用戶(hù)的倉(cāng)庫(kù)挑社,當(dāng)原作者更新倉(cāng)庫(kù)后,讓自己fork的倉(cāng)庫(kù)與原倉(cāng)庫(kù)保持一致运准。
名詞含義:
fork倉(cāng)庫(kù)(YOUR_FORK):你fork到自己github賬戶(hù)的倉(cāng)庫(kù)
原始倉(cāng)庫(kù)(ORIGINAL_REPOSITORY): 其他用戶(hù)的原始倉(cāng)庫(kù)
Configuring a remote for a fork
為了能fork倉(cāng)庫(kù)能與原始倉(cāng)庫(kù)同步涩堤,我們必須先為fork倉(cāng)庫(kù)配置新的remote(原始倉(cāng)庫(kù))
- 打開(kāi)終端,進(jìn)入本地項(xiàng)目目錄
- 列出fork倉(cāng)庫(kù)當(dāng)前配置的遠(yuǎn)程倉(cāng)庫(kù)故俐。
git remote -v
$ git remote -v #查看遠(yuǎn)程狀態(tài)
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
- 為fork倉(cāng)庫(kù)指定一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù)upstream想鹰,即你要同步的原始倉(cāng)庫(kù)。
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
- 再次查看狀態(tài)確認(rèn)是否配置成功药版。
$ git remote -v
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
> upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
> upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
Syncing a fork
- 從上游倉(cāng)庫(kù) fetch 分支和提交點(diǎn)辑舷,傳送到本地,并會(huì)被存儲(chǔ)在一個(gè)本地分支upstream/master.
git fetch upstream
$ git fetch upstream
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
> * [new branch] master -> upstream/master
- 切換到本地主分支(如果不在的話(huà)).
git checkout mster
$ git checkout master
> Switched to branch 'master'
- 把 upstream/master 分支合并到本地 master 上槽片,這樣就完成了同步何缓,并且不會(huì)丟掉本地修改的內(nèi)容。
git merge upstream/master
$ git merge upstream/master
> Updating a422352..5fdff0f
> Fast-forward
> README | 9 -------
> README.md | 7 ++++++
> 2 files changed, 7 insertions(+), 9 deletions(-)
> delete mode 100644 README
> create mode 100644 README.md
- 如果想更新到 GitHub 的 fork 上还栓,直接
git push origin master
就好了碌廓。
Reference
[1] 博客-同步一個(gè)fork
[2] 官方文檔-Configuring a remote for a fork
[3] 官方文檔-Syncing a fork