團隊協做,爲了規範,通常都是fork組織的倉庫到本身賬號下,再提交pr,組織的倉庫一直保持更新,減小對項目庫的直接操做。html
首先咱們預覽流程腦圖爲:前端
下面介紹如何保持本身fork以後的倉庫與上游倉庫同步。以我 fork 團隊的前端倉庫爲例git
注意:此時clone的項目是B分組下的項目,不然會出錯github
git clone git@xxx.gitlab.com:frontend/xxx.gitlab.io.git複製代碼
cd work/demo複製代碼
origin git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (fetch)
origin git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (push)複製代碼
能夠看到從本身賬號 clone 下來的倉庫,遠程倉庫地址是與本身的遠程倉庫綁定的(這不是廢話嗎)segmentfault
接下來添加原庫的遠程倉庫:運行bash
git remote add upstream https://xxx.gitlab.com/frontend/demo.github.io.git複製代碼
這條命令就算添加一個別名爲 upstream(上游)的地址【爲對遠程倉庫起的別名】,指向以前 fork 的原倉庫地址。git remote -v
輸出以下:frontend
origin git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (fetch)
origin git@xxx.gitlab.com:frontend/xxx.gitlab.io.git (push)
upstream https://xxx.gitlab.com/frontend/demo.github.io.git (fetch)
upstream https://xxx.gitlab.com/frontend/demo.github.io.git (push)複製代碼
注意若是
remote add
地址是https的地址檔進行git pull upstream develop
出現以下狀況gitlab
這時候咱們就須要剛纔添加的upstream
刪除掉,而後從新添加,此處也是我遇到的坑fetch
git remote remove upstream複製代碼
緊接着運行ui
git remote add upstream git@xxx.gitlab.cn:front-end/demo.git複製代碼
以後運行下面幾條命令,就能夠保持本地倉庫和上游倉庫同步了
方案一
更新代碼,而且輸出結果
git pull upstream develop複製代碼
git fetch upstream 更新原始倉庫上的全部分支和tab
git checkout master
git merge upstream/master
接着就是熟悉的推送本地倉庫到遠程倉庫
將更新後的本地庫經過add,commit,push,一條龍服務上傳到本身的Fork庫,實現對Fork庫的更新
步驟一:
git add . && git commit -m "描述"複製代碼
步驟二:
注意:這裏push到的是Fork庫的master,origin是Fork遠程倉庫的別名,是默認的。
git push origin master複製代碼
這樣就更新了遠程fork庫
直接在Fork庫上申請一次pull reques
由Fork庫的master到原庫的某個分支上,進行合併。
到這就完成了利用Fork庫進行開發的整個流程
咱們也能夠直接由本地庫push到原庫上:
git push 原庫名 分支名複製代碼
另外該方法是較費勁的一種更新辦法