1.git flow使用规范
git flow使用规范
1. Git Git 是姓名写诗姓名写诗线生目前世界上最先进的分布式版本控制系统,关于 Git 不做过多的源码源码介绍,想仔细学习的姓名写诗姓名写诗线生可以参考廖雪峰的 Git教程。顺便推销一下正哥的源码源码 Git常用指令与操作。
2. Git Flow
2.1 Git Flow 是姓名写诗姓名写诗线生什么 Git Flow 是一个基于 Git 的开发流程管理的模型,因极其适合多人协作有效地进行并行开发而被广泛用于项目流程的源码源码亚洲欧洲中字源码在线源代码管理。这里推荐一个光速入坑的姓名写诗姓名写诗线生教程: Gitflow Workflow Git Flow 的核心优势体现在以下几点:
Git Flow常用的命令如下:
$ git flow init # 初始化git flow配置,建立master和develop分支
$ git flow feature start xxx # 开始新特性开发,源码源码在本地新建一个feature/xxx的姓名写诗姓名写诗线生分支
$ git flow feature publish xxx # 发布新特性分支,将本地的源码源码feature/xxx推到远端,并建立一个merge request.
$ git flow feature finish xxx # 结束一个新特性开发,姓名写诗姓名写诗线生将本地的源码源码源码建站设计feature/xxx合并到develop.
2.2 Git Flow 流程 一个 Git Flow 全流程图如下. [我是图]( nvie.com/img/git-model@...)
2.3 Git Flow 分支 Git Flow 流程中包含一下几种分支。
1) master分支 主分支,姓名写诗姓名写诗线生随项目一直存在的源码源码长期分支。master分支HEAD所在的姓名写诗姓名写诗线生位置,永远是当前生产环境的代码。master分支不允许直接提交代码,仅允许从release或者hotfix分支通过merge request合并代码。
2) develop分支 开发分支,随项目一直存在的长期分支。develop分支的HEAD所在的位置,永远是下一个版本中已开发完成的新特性的最新代码。develop分支的鬼市源码代码每天自动构建并部署到测试环境。develop分支不允许直接提交代码,仅允许从feature, release或者hotfix分支通过merge request合并代码。当develop分支中下一个版本的新特性已经全部开发完毕后,从develop分支开出release分支,进入测试阶段。在下个版本的release分支创建之前,非下个版本的feature分支不允许向develop分支合并。
3) feature分支 feature分支是一类以feature/为前缀(gitflow默认值, 可以更换)的分支的统称。每一个feature分支从develop分支新建,进行==某一个功能==的开发。功能开发并测试稳定后,dkx通用源码feature分支将合并回develop分支。同一个人可以同时开发多个feature分支,同一个feature分支也可以同时被多个人开发。多个feature同时开发的情形,后开发完的分支在最后合并回develop时,往往会遇到冲突的情况。此时一般遵循以下两种方法解决冲突。
4) release分支 release分支是一类以release/为前缀(gitflow默认值, 可以更换)的分支的统称。develop分支上的下一个版本的所有新特性开发完毕,从develop分支开出一个该版本的release分支,并进行测试。医院app 源码release分支不允许进行新特性开发,而只进行bug修复和更新版本mata信息(如版本号, 构建日期, 更新日志等),并且可以不定期将新的bug修复改动合并回develop。当release充分测试稳定后,同时合并进入master分支和develop分支,并在master分支上的建议该release版本的TAG。
5) hotfix分支 当生产环境发现bug时,可以通过新建hotfix分支,来修复bug,修复后双向合并到develop和master。
3. Git Commit Message 规范 Git 每次提交都要写 commit message,否则就不允许提交。一般来说,commit message 应该清晰地说明本次提交的内容或目的。程序猿作为最具创造力的物种,他们甚至可以在commit的时候写诗。我是图 规范 git commit message,能够:
个人觉得认真规范的写commit message是对自己这次辛苦工作的总结和回顾。如果你够骚包,也可以加点仪式感进去。当下最流行的git commit 规范莫过于 angular规范。Angular规范的模板如下。
(): // 空一行 // 空一行
其中,header 是必须的,body 和 footer 可以省略。
3.1 Header Header 必须在同一行,包含3部分: type, scope, subject。其中type和subject必须写,scope可不写。
3.2 Body Body 部分是对本次提交代码的详细描述,主要描述本次提交的动机和需要同步给团队的信息。
3.3 Footer Footer 部分只用于两种情况。
3.4 Revert 有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header. Body部分的格式是固定的,必须写成This reverts commit <hash>., 其中的hash是被撤销 commit 的 SHA 标识符。例如: revert: feat(pencil): add 'graphiteWidth' option This reverts commit eccaabdff。
4. Code Review 摘抄自知乎问题的回答,有兴趣的可以去知乎看看原问题。
4.1 Code Review有什么用 通过参与实战和团队成员讨论思考,我们认为CodeReview最终的作用将归到促进工程师日常代码交流和人员的成长上面来,与此同时作为辅助手段来对产品质量进行把关。
4.2 Code Review适合什么团队 从代码质量提升的角度上看,以下类型的团队,笔者建议把CodeReview活动有效运作起来:
4.3 如何有效的Code Review 1、代码规范:明确Coding规则2、检视指南:制定一个checklist, 消除困惑和迷茫3、总结优化:透明问题,持续优化(非常重要)4、激励机制:激发主观能动性
4.4 哪种方式进行Code Review 最后组合一下,笔者个人推荐的CodeReview方式是强制+事前+小片段+线上交流+高频率,同时,如果能结合线下的大模块方式开展代码交流活动,效果会更好,这个经验来自手机管家高权限应用组的接地气实践。
5. 开发规范 必须遵守的规范.
推荐遵守的规范.
6. 示例