GitHub團隊協作流程

說來慚愧,這么長時間,第一次參與修改開源項目,所以整理了一份GitHub團隊協作流程,作為備忘,文章大部分內容參考<a target='_blank'>https://www.cnblogs.com/schaepher/p/4933873.html</a>

GitHub開發流程

注:其中 零、一、七 是由團隊項目負責人來完成的。開發人員只要從 二 開始就行了。

零、前期準備

首先把隊友直接push的權限關掉,即設置成Read。這樣可以防止隊友誤操作,未經審核就把代碼push到團隊項目上。
Teams用來分配issue的時候會用到,所以保留下來,并不是沒有用。

一、創建開發分支

master分支一般用來發布穩定版本,dev分支(開發分支)用來發布開發版本。
輸入分支名稱后,下面會跳出Create branch,點擊即可創建。

下面圖片寫的是develop,是因為我們這個項目已經有dev分支了。如果你們沒有dev分支,那么名字改成dev即可。這個影響不大。

image

分支創建完畢后,會自動跳轉到dev分支。由于dev分支是從master分支上創建的,因此內容與master分支一致。

image

二、Fork項目到個人的倉庫

點擊右上角的Fork,并選擇你的賬號(一般在第一個)。就可以Fork團隊項目到個人倉庫啦。

image

Fork完成后

image

三、Clone項目到本地

首先是clone,clone的地址可以直接點擊按鈕復制(如下圖)。

推薦使用SSH協議,用HTTP協議有時會出問題。
注意,這里clone的是你自己倉庫里的項目

image

打開git命令行,輸入指令和剛才復制的地址,回車即可克隆到本地

image

此時你只能看到master分支,并沒有把dev分支clone下來。使用 git branch 命令查看本地分支,發現本地只有master分支。如下圖的①

image

如上圖的②,使用 git branch -a 查看所有分支,就能看到遠程分支。
根據遠程分支,我們可以創建一個新的本地分支dev,并把該項目的dev分支的內容放到本地dev分支。如上圖③。

git checkout -b dev origin/dev 的意思是,創建一個dev分支(-b),并把遠程dev分支(origin/dev)的內容放在該分支內。接著切換到該分支(checkout)

現在使用 git branch 可以查看兩個分支,并且用 ls 或者 dir 就能看到dev分支的內容了。想切換回master分支的時候,再用 git checkout master 即可。

image

上面的操作完成后,你就可以在本地進行開發了。但是如果要將你修改完的代碼合并到團隊項目上,還需要進行下面的操作。

四、和團隊項目保持同步

首先查看有沒有設置upstream,使用 git remote -v 命令來查看。如下圖①

image

如果沒有顯示upstream,則使用 git remote add upstream 團隊項目地址 命令。如上圖②
接著再次使用 git remote -v ,如果如上圖③,顯示出了upstream,那么就設置好了

開始同步。首先執行 git fetch upstream 獲取團隊項目最新版本。如下圖①

image

此時并沒有把最新版本合并到你本地的分支上,因此還需要一步。如上圖②,當前分支是dev分支,執行 git merge upstream/dev 命令后,會將源分支(upstream/dev)合并到當前分支(dev)。

如果你是在本地的master分支上開發,那么在使用該命令前,先切換到master分支。
merge的時候,有可能碰到沖突。需要解決沖突才能繼續下面的操作。沖突的解決可以參考→ 沖突的解決

五、push修改到自己的項目上

解決沖突后,就可以使用 git push 命令將本地的修改同步到自己的GitHub倉庫上了。

注意,在當前所在分支使用push,會push到與這個分支相關聯的遠程倉庫分支。這里dev分支與origin/dev關聯,因此push到GitHub上的dev分支。

image

六、請求合并到團隊項目上

首先到你的GitHub上,進入你Fork的倉庫里。點擊紅框處的Pull request

image

下圖左邊紅框,表示要合并到fzu2015/CourseManagement項目的dev分支。
下圖右邊紅框,表示要從自己倉庫的dev分支發起合并請求。
點擊紅框處的 Create pull request就可以發送合并請求了。

image

當然,在發送請求之前,你可以檢查一下你都改了哪些東西。在上面那個頁面往下拉,就可以看到兩者的對比。如下圖

image

以上操作結束后,團隊成員的流程就結束了。最后一步交給團隊項目負責人來完成。

七、團隊項目負責人審核及同意合并請求

首先進入GitHub的團隊項目倉庫中。此時右邊的Pull requests顯示當前項目有幾個Pull request。點擊進入查看。

image

選擇一個Pull request

image

項目負責人審核有兩個要注意的地方:

  • 一個是下圖的①。一定要看清楚是合并到哪個分支。這里是從schaepher的dev分支合并到fzu2015的dev分支。

  • 另一個是下圖的②。點擊進去后,就可以查看該Pull request對項目做了哪些修改。這樣如果有問題,可以及時發現,并關閉該Pull request。

如果關閉了,一定要告訴隊友,否則他可能會不知道。雖然也可以直接在下面發布Comment告訴他,但隊友不一定看到。

image
  • 如果沒有問題,可以點擊Merge pull request。這樣就合并好了。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統,...
    君惜丶閱讀 3,572評論 0 13
  • 我會的技能: 1、愛下廚愛吃 2、好奇愛發現新東西 3、愛各種手工DIY 我的優點: 1、愛自學 2、運動神經發達...
    suddenly猴子閱讀 194評論 0 1
  • 一切仿佛回到了從前。此時此刻回蕩起曾經TA legacy全班同學的見證成長的地方。歡迎TA79的19位領袖歸來。我...
    顧國勝閱讀 250評論 2 3
  • 沒說完,剛上傳圖片后就手足無措了,怕退出后就刪除了-_-|| 軍訓時,穿那個鞋啊,都磨到腳起泡了,又腫又...
    憶往如故啊閱讀 124評論 0 0
  • 01 這一次,居然在”不出局“的系統提醒明天要交作業,開才始動筆。 我所謂的7天寫1篇,其實只是7天中的某幾個小時...
    不七而遇閱讀 582評論 6 2