團(tuán)隊(duì)協(xié)作,為了規(guī)范,一般都是fork組織的倉庫到自己帳號(hào)下,再提交pr,組織的倉庫一直保持更新,下面介紹如何保持自己fork之后的倉庫與上游倉庫同步。
下面是我fork github 開源項(xiàng)目envoy 倉庫https://github.com/envoyproxy/envoy.git為例github 上的項(xiàng)目fork 后,下載到本地電腦上
git clone https://github.com/HappyFreeAngel/envoy.git
查看一下結(jié)果
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
點(diǎn)擊 fork 組織倉庫到自己帳號(hào)下,然后就可以在自己的帳號(hào)下 clone 相應(yīng)的倉庫
使用 git remote -v 查看當(dāng)前的遠(yuǎn)程倉庫地址,輸出如下:
origin git@github.com:ibrother/staticblog.github.io.git (fetch)
origin git@github.com:ibrother/staticblog.github.io.git (push)
可以看到從自己帳號(hào) clone 下來的倉庫,遠(yuǎn)程倉庫地址是與自己的遠(yuǎn)程倉庫綁定的(這不是廢話嗎)
接下來運(yùn)行 git remote add upstream https://github.com/staticblog/staticblog.github.io.git
這條命令就算添加一個(gè)別名為 upstream(上游)的地址,指向之前 fork 的原倉庫地址。git remote -v 輸出如下:
origin git@github.com:ibrother/staticblog.github.io.git (fetch)
origin git@github.com: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)
同步上游倉庫
之后運(yùn)行下面幾條命令,就可以保持本地倉庫和上游倉庫同步了
git fetch upstream
git checkout master
git merge upstream/master
最后就是熟悉的推送本地倉庫到遠(yuǎn)程倉庫
git push origin master
對(duì)比以上2張圖,可以看到確實(shí)已經(jīng)同步好了.
————————————————
版權(quán)聲明:本文為CSDN博主「開心自由天使」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。原文鏈接:https://blog.csdn.net/happyfreeangel/article/details/102605329