一.前期准備
其中 一、二、八 是由團隊項目負責人來完成的。開發人員只要從 三 開始就行了。
首先把隊友直接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。這樣就合並好了。
一直以來因為互聯網知識獲取過於容易的原因,本人在版權方面的意識過於薄弱,經過各位助教老師的提醒在此處特意更正申明一下:以上內容引用自
方便各團隊同學學習,整理到此博客當中,並且本轉載博文只用於本校同學學習,不作他用。
關於以下問題的解決
- 同步團隊項目到本地時出現沖突怎么辦?
- 項目負責人merge一個Pull Request后發現有錯怎么回退?