1. 程式人生 > >GitHub團隊協作流程

GitHub團隊協作流程

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

GitHub開發流程

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

零、前期準備

首先把隊友直接push的許可權關掉,即設定成Read。這樣可以防止隊友誤操作,未經稽核就把程式碼push到團隊專案上。
Teams用來分配issue的時候會用到,所以保留下來,並不是沒有用。

一、建立開發分支

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

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

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

二、Fork專案到個人的倉庫

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

Fork完成後

三、Clone專案到本地

首先是clone,clone的地址可以直接點選按鈕複製(如下圖)。

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

開啟git命令列,輸入指令和剛才複製的地址,回車即可克隆到本地

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

如上圖的②,使用 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 即可。

上面的操作完成後,你就可以在本地進行開發了。但是如果要將你修改完的程式碼合併到團隊專案上,還需要進行下面的操作。

四、和團隊專案保持同步

首先檢視有沒有設定upstream,使用 git remote -v 命令來檢視。如下圖①

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

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

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

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

五、push修改到自己的專案上

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

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

六、請求合併到團隊專案上

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

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

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

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

七、團隊專案負責人稽核及同意合併請求

首先進入GitHub的團隊專案倉庫中。此時右邊的Pull requests顯示當前專案有幾個Pull request。點選進入檢視。

選擇一個Pull request

專案負責人稽核有兩個要注意的地方:

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

  • 另一個是下圖的②。點選進去後,就可以檢視該Pull request對專案做了哪些修改。這樣如果有問題,可以及時發現,並關閉該Pull request。

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

  • 如果沒有問題,可以點選Merge pull request。這樣就合併好了。