git fork之後的項目如何保持和上游同步

團隊協作,爲了規範,一般都是fork組織的倉庫到自己帳號下,再提交pr,組織的倉庫一直保持更新,下面介紹如何保持自己fork之後的倉庫與上游倉庫同步。

下面是我fork github 開源項目envoy 倉庫https://github.com/envoyproxy/envoy.git爲例
github 上的項目fork 後,

在這裏插入圖片描述

#下載到了本地電腦上
git clone https://github.com/HappyFreeAngel/envoy.git

#查看一下結果
linyingjiedeMacBook-Pro:envoy linyingjie$ git remote -v
origin https://github.com/HappyFreeAngel/envoy.git (fetch)
origin https://github.com/HappyFreeAngel/envoy.git (push)
upstream https://github.com/envoyproxy/envoy.git (fetch)
upstream https://github.com/envoyproxy/envoy.git (push)

#添加upstream
git remote add upstream https://github.com/envoyproxy/envoy.git
git fetch upstream
git checkout master
git merge upstream/master

點擊 fork 組織倉庫到自己帳號下,然後就可以在自己的帳號下 clone 相應的倉庫

使用 git remote -v 查看當前的遠程倉庫地址,輸出如下:

origin [email protected]:ibrother/staticblog.github.io.git (fetch)
origin [email protected]:ibrother/staticblog.github.io.git (push)
可以看到從自己帳號 clone 下來的倉庫,遠程倉庫地址是與自己的遠程倉庫綁定的(這不是廢話嗎)

接下來運行 git remote add upstream https://github.com/staticblog/staticblog.github.io.git

這條命令就算添加一個別名爲 upstream(上游)的地址,指向之前 fork 的原倉庫地址。git remote -v 輸出如下:

origin [email protected]:ibrother/staticblog.github.io.git (fetch)
origin [email protected]:ibrother/staticblog.github.io.git (push)
upstream https://github.com/staticblog/staticblog.github.io.git (fetch)
upstream https://github.com/staticblog/staticblog.github.io.git (push)
之後運行下面幾條命令,就可以保持本地倉庫和上游倉庫同步了

git fetch upstream
git checkout master
git merge upstream/master

最後就是熟悉的推送本地倉庫到遠程倉庫

git push origin master

在這裏插入圖片描述
對比以上2張圖,可以看到確實已經同步好了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章