前言: 关于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版本:
至此,团长交待的任务完成!