已在另一篇博客中寫出關於以下問題的解決,點此進入:
- 同步團隊項目到本地時出現沖突怎么辦?
- 項目負責人merge一個Pull Request后發現有錯怎么回退?
目錄:
- 零、前期准備
- 一、創建開發分支
- 二、Fork項目到個人的倉庫
- 三、Clone項目到本地
- 四、和團隊項目保持同步
- 五、push修改到自己的項目上
- 六、請求合並到團隊項目上
- 七、團隊項目負責人審核及同意合並請求
注:其中
零、一、七
是由團隊項目負責人來完成的。開發人員只要從二
開始就行了。
零、前期准備:
首先把隊友直接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。這樣就合並好了。