前言: 關於git的使用, 以前就已經寫過一篇博客了: http://www.cnblogs.com/0zcl/p/6874588.html. 看完這篇博客, 你就基本可使用git了. 這種使用, 僅限了一兩人的開發. 若是團隊有多人, 並且位置較分散. 那這開發就更須要規範了. 所以, 這篇博客來講一下GIT工做流.html
原本覺得我用git命令行能夠解決GIT工做流上的問題,但其實只用命令行仍是蠻困難的。下面先看看GIT的規範, 這部分比較無聊, 下面會圖文並茂的, 好吧. 若是你瞄了一眼, 以爲這SB博客, 寫得太low了, 而後就關掉這篇博客, 我感受仍是錯過一些東東.git
[feature] 新增功能、更新的提交,例如「[feature] add a new data layer for reading jpeg images」性能
[bugfix] bug修正的提交,有bugid的補充bugid,例如「[bugfix] now data layer reads single-channel images correctly」測試
[optimize] 優化的提交:性能等方面,feature分之下的單次優化要指明,優化分支下的用[feature]便可優化
[refactor] 代碼等重構的提交,feature分之下的單次重構要指明,重構分支下的用[feature]便可spa
A.B.C。例如1.1.0。按照功能來定:命令行
添加一個工程文件之後,點擊:(倉庫)——(git flow)——(初始化倉庫)3d
develophtm
當前版本最新開發進展,未測試或者測試中,對於單人開發小模塊能夠直接提交,多人協做及大模塊必須經過合併具體功能子分支,接受來自feature,release,hotfix的合併。blog
feature分支
這個分支主要是爲了各類研發方案執行使用。(必須推送遠端,完成feature後合併到develop,以及測試下是否能夠執行)
release分支
這個分支主要是給研發方案差很少肯定時使用,主要是爲了fixbug等。(完成feature後,必須推送遠端,以及測試下是否能夠執行)
hotfix分支
主要用於最新發布版本的bug修復。
以上來自GIT規範,然而看完GIT規範感受仍是沒有頓悟的感受。so,必須得會使用smartgit呀。
看完GIT規範,你已經知道,feature分支是平時開發功能用的,完成feature分支開發後,合併到develop分支,合併成功後,刪除該feature分支。這用smartgit能夠輕鬆實現,用命令行的話是比較麻煩,但也能夠實現呀。如今的問題是,用smartgit如何輕鬆實現建立feature分支,刪除feature分支?
點擊Git-Flow,再點擊configure,可出現以下圖:若是你找不到下圖這個界面,那必然是你操做的姿式有問題。
看到沒有,神奇呀,在上圖中,你只需點擊OK,GIT就會自動幫你建立feature, release, hot-fix, develop分支。這超牛逼的。這步操做很重要。完成這步操做後,會出現develop分支,此時須要把develop分支推到遠程。
正常狀況下,你遠程倉庫應該有兩個分支了,分別是master和develop分支。若是沒有,把它們推到遠程。
啥,不知道怎麼push?有兩種方式,在上圖的左下角的Branches窗口下,你能夠點擊master分支,而後鼠標右擊,再點擊push to ;也能夠在左下角的Branches窗口下,雙擊要push的分支A,此時分切換到A分支,而後再點擊上圖左上方的Push推到遠程。
OK,此時遠程倉庫應該有兩個分支master/develop,然而這還遠遠不夠呀,你看到同事的項目有一個feature分支。so,你確定也是須要feature分支的。
點擊Git-Flow,會出現下圖。若是沒出現Start Feature; Start Release這些,必然是你最開始的configure有問題。
點擊Start Feature來建立一個feature分支,分支命令要參考命名規範。
如今你已經有一個feature分支了。在該分支提交些東西,commit後,提交到遠程。你會驚喜的發現遠程的倉庫出現feature分支。
如今你能夠不斷地開發,提交代碼到feature分支上,但feature分支只負責一個功能的開發而已,當這個功能開發完成後,必然須要把該feature分支刪除。
簡單粗暴地說,就是當feature/0.0.2_zzy_example分支負責的功能開發完畢時,須要把feature分支合併到develop分支,合併完成後,feature分支刪除,此時遠程倉庫就看不到feature/0.0.2_zzy_example分支。
其實smartgit已經幫咱們簡化了工做。牛逼呀。
當你建立feature分支時,會自動切換到feature分支。完成功能開發後,想把feature分支合併到develop分支,如何作呢?
只需點擊Git-Flow,就會出現下圖。注意,此時你應該是處於feature分支的:
看到上圖的Delete feature branch沒,當你合併完成後,就會把feature分支刪除。
接下來你須要把develop分支推到遠程。你會發現遠程的feature分支不見了。
以上,是feature分支開發的流程。
今天,團長想考下git方面的操做。給我一個需求:
先來看看GIT規範對於release分支是如何介紹的:
release分支
這個分支主要是給研發方案差很少肯定時使用,主要是爲了fixbug等。(完成feature後,必須推送遠端,以及測試下是否能夠執行)
第一步:
先建立一個release分支:點擊Git-Flow,再點擊start release:
輸入release分支名,分支名參考GIT規範。
第二步:能夠在release分支commit, push到遠程。此時你的遠程除master, develop外,應該得有一個release分支
第三步:發佈版本
點擊finish,就會發布版本啦,這裏須要給版本打一個tag,tag默認會自動顯示爲你的版本號。同時會把release合併到master與develop分支。再同時發佈以後,會刪除該release分支。
此時遠程以下顯示:沒有release分支。多了一個Tags版本:
至此,團長交待的任務完成!