介紹基於Git 兩種協作開發模式
對於Github 一些好用的特殊操作技巧 ,可以見GitHub 特殊操作技巧 和Git的基本操作 http://www.linuxidc.com/Linux/2016-09/135184.htm
GitHub Flow —— 以部署為中心的開發模式,通過簡單的功能和規則,持續且高速 安全地進行部署。在實際開發中往往一天之內會實施幾十次部署,而支撐這一切的,就是足夠簡單的開發流程以及完全的自動化。
2
新建的本地倉庫分支中進行提交使用Github Flow 的前提條件
荷蘭程序員 Vincent Driessen 曾發表了一篇博客,讓一個分支策略廣為人知。具體流程見下圖(引用該博客的一幅圖片)
這一流程最大的亮點是考慮了緊急Bug的應對措施,整個流程顯得過於復雜,所以在實施該方案前,需要對整個開發流程進行系統的學習。也需要借助Git flow 等工具的輔助。
GitHub 教程系列文章:
通過GitHub創建個人技術博客圖文詳解 http://www.linuxidc.com/Linux/2015-02/114121.htm
GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm
使用 GitHub / GitLab 的 Webhooks 進行網站自動化部署 http://www.linuxidc.com/Linux/2016-06/131993.htm
多個GitHub帳號的SSH key切換 http://www.linuxidc.com/Linux/2016-05/131080.htm
如何在同一台電腦上使用兩個GitHub賬戶 http://www.linuxidc.com/Linux/2016-05/131079.htm
利用GitHub搭建個人Maven倉庫 http://www.linuxidc.com/Linux/2016-04/130197.htm
一分鐘認識GitHub http://www.linuxidc.com/Linux/2015-11/125089.htm
分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm
下面根據上圖,按塊說明:
在Git Flow 中,這兩個分支至關重要,它們會貫徹整個流程始終,絕對不會被刪除。
master 分支
master 分支時常保持著軟件可以正常運行的狀態。由於要維護這一狀態,所以不允許開發者直接對master 分支的代碼進行修改和提交。
其他分支的開發工作進展到可以發布的程度後,將會與master分支進行合並,並且這一合並只在發布成品時進行。發布時將會附加版本編號的Git標簽。
develop分支
develop分支是開發過程中代碼中心分支。與master 分支一樣,這個分支也不允許開發者直接進行修改和提交。
程序員要以develop分支為起點新建feature 分支,在feature 分支中進行新功能的開發或者代碼的修正。也就是說develop分支維系著開發過程中的最新代碼,以便程序員創建feature分支進行自己的工作。
feature 分支以develop分支為起點,是開發者直接更改代碼發送提交的分支。開發流程:
具體指令:
$ git checkout develop
$ git pull
$ git flow feature start add-user //add branch feature/add-user
$ git branch
// feature/add user start commit commit ....
$ git push orgin feature/add-user
//到github 上去代碼審查,切到develop分支,進行pull request
$ git checkout develop
$ git pull // 當feature/add-user 合並到 develop後,本地develop 需要更新到最新狀態
注意,默認狀態是pull request 到master。這時需要手動切換到develop分支,再進行pull Request 操作。
如果采用該開發策略,那麼可以在setting 中 Option 中,修改Default Branch 為 develop ,這樣就省去了手動修改的麻煩。
與develop分支合並後,已經完成工作的feature分支可以在適當的時機刪除