說來慚愧,這麼長時間,第一次參與修改開源專案,所以整理了乙份github團隊協作流程,作為備忘,文章大部分內容參考
注:其中 零、一、七 是由團隊專案負責人來完成的。開發人員只要從 二 開始就行了。首先把隊友直接push的許可權關掉,即設定成read。這樣可以防止隊友誤操作,未經審核就把**push到團隊專案上。
teams用來分配issue的時候會用到,所以保留下來,並不是沒有用。
master分支一般用來發布穩定版本,dev分支(開發分支)用來發布開發版本。
輸入分支名稱後,下面會跳出create branch,點選即可建立。
下面寫的是develop,是因為我們這個專案已經有dev分支了。如果你們沒有dev分支,那麼名字改成dev即可。這個影響不大。
分支建立完畢後,會自動跳轉到dev分支。由於dev分支是從master分支上建立的,因此內容與master分支一致。
點選右上角的fork,並選擇你的賬號(一般在第乙個)。就可以fork團隊專案到個人倉庫啦。
fork完成後
首先是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的時候,有可能碰到衝突。需要解決衝突才能繼續下面的操作。衝突的解決可以參考→ 衝突的解決
解決衝突後,就可以使用 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
專案負責人審核有兩個要注意的地方:
如果關閉了,一定要告訴隊友,否則他可能會不知道。雖然也可以直接在下面發布comment告訴他,但隊友不一定看到。
git團隊協作流程
開發者 開始工作前 git checkout master git pull git checkout b branchname 工作中 git add git commit m message 工作完畢 git push 管理者 自己寫 開始工作前 git checkout b branchnam...
團隊協作git操作流程
git clone 轉殖 庫 git checkout b test 新建分支 modify some files 完成修改 git add 把修改加入stage中 git commit m 提交修改到test分支 review git checkout master 切換到master分支 git...
小團隊Git協作流程
git和svn 最大的差異在於git是分布式的管理方式而svn是集中式的管理方式。集中式 管理的核心是伺服器,所有開發者在開始coding之前必須從伺服器獲取 然後開發,最後解決衝突,提交。所有的版本資訊都放在伺服器上。基於集中式的 管理,完全依賴於 伺服器,如果是離線的情況下伺服器不能連線,那本地...