FAQ-保持Fork以後的項目和上游同步

前言:

團隊協做,爲了規範,通常都是fork組織的倉庫到本身賬號下,再提交pr,組織的倉庫一直保持更新,減小對項目庫的直接操做。html

首先咱們預覽流程腦圖爲:前端

image.png


下面介紹如何保持本身fork以後的倉庫與上游倉庫同步。以我 fork 團隊的前端倉庫爲例git

言外之意就是A->B的過程

一、要派生一個項目,請單擊fork按鈕,以下所示

image.png

二、分叉項目以後,您須要經過單擊它將分叉項目添加到一個fork組

image.png

三、接下來的一段時間內,它將開始處理一個項目,以下圖所示

image.png

四、它會在項目過程完成後顯示成功信息

image.png

五、而後就能夠在本身的賬號下 clone 相應的倉庫

注意:此時clone的項目是B分組下的項目,不然會出錯github

git clone git@xxx.gitlab.com:frontend/xxx.gitlab.io.git複製代碼

六、進入到咱們的項目目錄

cd work/demo複製代碼

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

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

image.png

這時候咱們就須要剛纔添加的upstream刪除掉,而後從新添加,此處也是我遇到的坑fetch

git remote remove upstream複製代碼

緊接着運行ui

git remote add upstream git@xxx.gitlab.cn:front-end/demo.git複製代碼

以後運行下面幾條命令,就能夠保持本地倉庫和上游倉庫同步了

方案一

更新代碼,而且輸出結果

git pull upstream develop複製代碼

image.png

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庫後,合併到原庫,實現提交本身的代碼到原庫

直接在Fork庫上申請一次pull reques

image.png
由Fork庫的master到原庫的某個分支上,進行合併。

image.png到這就完成了利用Fork庫進行開發的整個流程

最後:

咱們也能夠直接由本地庫push到原庫上:

git push 原庫名 分支名複製代碼

另外該方法是較費勁的一種更新辦法

其餘感興趣的文章

www.zhihu.com/question/20…

segmentfault.com/q/101000000…

www.cnblogs.com/kidsitcn/p/…

gitlab.com/gitlab-org/…

相關文章
相關標籤/搜索