现在的版本控制越来越重要,还记得毕业那会写毕业设计一个个版本,搞得头昏脑涨,不过当时已经接触了版本迭代在自己的机器上部署了一个SVN Server,用程序员的方式轻松解决一个个版本。
毕业后用过SVN,在超星时用得就是SVN,后来在世界邦用的是Git,对于版本控制来说那种都无所谓,不过对于用过Git的人来说,Git在分支和分布式版本这块和SVN还是有很大的区别,不过就冲Git优秀分支管理这块很适合客户端的开发,版本迭代快、团队人数不多,用起Git更能提高自己的效率。有了天书第六部,我们还怕张小凡么?
推荐
至于Git的基础命令我推荐几个比较好的网站:
Pro Git官网
廖雪峰的Git教程
Git入门指南使用资料汇总及文章推荐
图文并茂-猴子都能懂的git入门教程
A successful Git branching model
其中 Git入门指南使用资料汇总及文章推荐 提到了 git flow – 项目地址 , git flow 其实是为了更好的利用Git分支对git 命令的一个封装,省时省力,不信来张图。
git flow
介绍
另外的一个
master分支 : 主分支,是你发版的release时打的tag,是稳定版本,每一个版本都要打一个version tag。
develop分支 :是主分支开发分支,总是我们最新版本,虽然不稳定,但是有我们最新的版本,当开发完,QA通过,版本迭代完毕,将 develop merge 回主分支。
release分支 release分支是为发布新的产品版本而设计的。在这个分支上的代码允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、发布时间、编译时间等等)。
feature分支 :是develop的功能分支,如有几个人同事开发几个小功能,每个人都要同时开发从develop中拉出一个feature分支,但是每个feature颗粒要尽量小,因为它需要我们能尽早merge会develop分支,否则冲突解决起来就没完没了。同时,当一个功能因为各种原因不开发了或者放弃了,这个分支直接废弃,不影响其他develop分支。
hot-fix 分支:是一个比较特殊的分支,如图是从master分支上分出来的一个分支,如发版后发现有个紧急修复的bug,这时就需要用到hot-fix分支,修改完bug,结束了这个 hot-fix ,回合并修改的内容到 develop 分支和 mastar 分支。
常用的分支约定:
用于新建发布分支的分支: develop
用于合并的分支: master
分支命名: release- 或 release/
截了一个git-flow 备忘清单网站上的图。
案例
创建开发分支
创建一个本地分支
git branch develop
git push -u origin develop
或者 checkout一份到本地
git checkout -b develop origin/develop
初始化git flow
git flow init
feature分支
开始创建新的需求分支
git flow feature start feature1 #这时项目会自动切换 feature/feature1分支
提交日志到本地仓库
git commit -a -m "修改日志"
完成开发分支合并develop(自动)
git flow feature finish feature1
发布到远程开发分支
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
最终修改和测试完成后,结束hot fix以供发布
git flow hot fix finish hfx
发布最终的master分支