Git 是目前最流行的源代码管理工具。 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操做。git
Git主分支(保留分支):master 、releasegithub
Git辅助分支(临时分支):dev-*、bugfix-*、release-*web
master 分支bash
develop 分支运维
feature 分支ide
release分支工具
当有一组feature开发完成,首先会合并到develop分支,进入提测时,会建立release分支。
若是测试过程当中若存在bug须要修复,则直接由开发者在release分支修复并提交。
当测试完成以后,合并release分支到master和develop分支,此时master为最新代码,用做上线。
复制代码
hotfix 分支性能
增长新功能测试
(dev)$: git checkout -b feature/xxx # 从dev创建特性分支 (feature/xxx)$: blabla # 开发 (feature/xxx)$: git add xxx (feature/xxx)$: git commit -m 'commit comment' (dev)$: git merge feature/xxx --no-ff # 把特性分支合并到dev
修复紧急bugui
(master)$: git checkout -b hotfix/xxx # 从master创建hotfix分支 (hotfix/xxx)$: blabla # 开发 (hotfix/xxx)$: git add xxx (hotfix/xxx)$: git commit -m 'commit comment' (master)$: git merge hotfix/xxx --no-ff # 把hotfix分支合并到master,并上线到生产环境 (dev)$: git merge hotfix/xxx --no-ff # 把hotfix分支合并到dev,同步代码
测试环境代码
(release)$: git merge dev --no-ff # 把dev分支合并到release,而后在测试环境拉取并测试
生产环境上线
(master)$: git merge testing --no-ff # 把testing测试好的代码合并到master,运维人员操做 (master)$: git tag -a v0.1 -m '部署包版本名' #给版本命名,打Tag
在一个团队协做的项目中,开发人员须要常常提交一些代码去修复bug或者实现新的feature。而项目中的文件和实现什么功能、解决什么问题都会渐渐淡忘,最后须要浪费时间去阅读代码。可是好的日志规范commit messages编写有帮助到咱们,它也反映了一个开发人员是不是良好的协做者。
编写良好的Commit messages能够达到3个重要的目的:
目前,社区有多种 Commit message 的写法规范。来自Angular 规范是目前使用最广的写法,比较合理和系统化。以下图:
当前业界应用的比较普遍的是 Angular Git Commit Guidelines
具体格式为:
<type>: <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
Type的类别说明:
# 标题行:50个字符之内,描述主要变动内容 # # 主体内容:更详细的说明文本,建议72个字符之内。 须要描述的信息包括: # # * 为何这个变动是必须的? 它多是用来修复一个bug,增长一个feature,提高性能、可靠性、稳定性等等 # * 他如何解决这个问题? 具体描述解决问题的步骤 # * 是否存在反作用、风险? # # 若是须要的化能够添加一个连接到issue地址或者其它文档