現(xiàn)在的版本控制越來越重要,還記得畢業(yè)那會寫畢業(yè)設計一個個版本,搞得頭昏腦漲,不過當時已經(jīng)接觸了版本迭代在自己的機器上部署了一個SVN Server,用程序員的方式輕松解決一個個版本。

畢業(yè)后用過SVN,在超星時用得就是SVN,后來在世界邦用的是Git,對于版本控制來說那種都無所謂,不過對于用過Git的人來說,Git在分支和分布式版本這塊和SVN還是有很大的區(qū)別,不過就沖Git優(yōu)秀分支管理這塊很適合客戶端的開發(fā),版本迭代快、團隊人數(shù)不多,用起Git更能提高自己的效率。有了天書第六部,我們還怕張小凡么?

推薦
至于Git的基礎命令我推薦幾個比較好的網(wǎng)站:
Pro Git官網(wǎng)
廖雪峰的Git教程
Git入門指南使用資料匯總及文章推薦
圖文并茂-猴子都能懂的git入門教程
A successful Git branching model
其中 Git入門指南使用資料匯總及文章推薦 提到了 git flow – 項目地址 , git flow 其實是為了更好的利用Git分支對git 命令的一個封裝,省時省力,不信來張圖。
git flow
介紹

另外的一個
master分支 : 主分支,是你發(fā)版的release時打的tag,是穩(wěn)定版本,每一個版本都要打一個version tag。
develop分支 :是主分支開發(fā)分支,總是我們最新版本,雖然不穩(wěn)定,但是有我們最新的版本,當開發(fā)完,QA通過,版本迭代完畢,將 develop merge 回主分支。
release分支 release分支是為發(fā)布新的產(chǎn)品版本而設計的。在這個分支上的代碼允許做小的缺陷修正、準備發(fā)布版本所需的各項說明信息(版本號、發(fā)布時間、編譯時間等等)。
feature分支 :是develop的功能分支,如有幾個人同事開發(fā)幾個小功能,每個人都要同時開發(fā)從develop中拉出一個feature分支,但是每個feature顆粒要盡量小,因為它需要我們能盡早merge會develop分支,否則沖突解決起來就沒完沒了。同時,當一個功能因為各種原因不開發(fā)了或者放棄了,這個分支直接廢棄,不影響其他develop分支。
hot-fix 分支:是一個比較特殊的分支,如圖是從master分支上分出來的一個分支,如發(fā)版后發(fā)現(xiàn)有個緊急修復的bug,這時就需要用到hot-fix分支,修改完bug,結(jié)束了這個 hot-fix ,回合并修改的內(nèi)容到 develop 分支和 mastar 分支。
常用的分支約定:
用于新建發(fā)布分支的分支: develop
用于合并的分支: master
分支命名: release- 或 release/
截了一個git-flow 備忘清單網(wǎng)站上的圖。

案例
創(chuàng)建開發(fā)分支

創(chuàng)建一個本地分支
git branch develop
git push -u origin develop
或者 checkout一份到本地
git checkout -b develop origin/develop
初始化git flow
git flow init
feature分支
開始創(chuàng)建新的需求分支
git flow feature start feature1 #這時項目會自動切換 feature/feature1分支
提交日志到本地倉庫
git commit -a -m "修改日志"
完成開發(fā)分支合并develop(自動)
git flow feature finish feature1
發(fā)布到遠程開發(fā)分支
git push origin develop
hotfix分支
更新master分支
git pull origin master(更新master分支為最新)
切換到master分支
git checkout master
生成一個hotfix分支
git flow hotfix start hfx
通知相關得工程師和測試人員hotfix分支名稱
最終測試完成后拉回分支最新代碼
git pull origin hotfix/hfx
最終修改和測試完成后,結(jié)束hot fix以供發(fā)布
git flow hot fix finish hfx
發(fā)布最終的master分支