Git 是目前最风行的源代码管理工具。为标准开发,放弃代码提交记录以及 git 分支构造清晰,不便后续保护,现标准 git 的相干操作。
分支命名
1、master 分支
master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性, master 分支个别由develop以及hotfix分支合并,任何工夫都不能间接批改代码
2、develop 分支
develop 为开发分支,始终保持最新实现以及bug修复后的代码,个别开发的新性能时,feature分支都是基于develop分支下创立的。
feature 分支
- 开发新性能时,以develop为根底创立feature分支。
- 分支命名: feature/ 结尾的为个性分支, 命名规定: feature/user_module、 feature/cart_module
release分支
release 为预上线分支,公布提测阶段,会release分支代码为基准提测。当有一组feature开发实现,首先会合并到develop分支,进入提测时会创立release分支。如果测试过程中若存在bug须要修复,则间接由开发者在release分支修复并提交。当测试实现之后,合并release分支到master和develop分支,此时master为最新代码,用作上线。
hotfix 分支
分支命名: hotfix/ 结尾的为修复分支,它的命名规定与feature分支相似。线上呈现紧急问题时,须要及时修复,以master分支为基线,创立hotfix分支,修复实现后,须要合并到master分支和develop分支
常见工作
减少新性能
(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
修复紧急bug
(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 release --no-ff # 把release测试好的代码合并到master,运维人员操作(master)$: git tag -a v0.1 -m '部署包版本名' #给版本命名,打Tag
日志标准
在一个团队合作的我的项目中,开发人员须要常常提交一些代码去修复bug或者实现新的feature。
而我的项目中的文件和实现什么性能、解决什么问题都会慢慢淡忘,最初须要浪费时间去浏览代码。然而好的日志标准commit messages编写有帮忙到咱们,它也反映了一个开发人员是否是良好的协作者。
编写良好的Commit messages能够达到3个重要的目标:
- 放慢review的流程
- 帮忙咱们编写良好的版本公布日志
- 让之后的维护者理解代码里呈现特定变动和feature被增加的起因
目前,社区有多种 Commit message 的写法标准。来自Angular 标准是目前应用最广的写法,比拟正当和系统化。如下图:
Commit messages的根本语法
以后业界利用的比拟宽泛的是 Angular Git Commit Guidelines
“https://github.com/angular/an...
具体格局为:
<type>: <subject><BLANK LINE><body><BLANK LINE><footer>
- type: 本次 commit 的类型,诸如 bugfix docs style 等
- scope: 本次 commit 波及的范畴
- subject: 简明扼要的论述下本次 commit 的宗旨,在原文中特意强调了几点:
- 应用祈使句,是不是很相熟又生疏的一个词
- 首字母不要大写
- 结尾无需增加标点
body: 同样应用祈使句,在主体内容中咱们须要把本次 commit 具体的形容一下,比方此次变更的动机,如需换行,则应用 |
footer: 形容下与之关联的 issue 或 break change
Type的类别阐明:
- feat: 增加新个性
- fix: 修复bug
- docs: 仅仅批改了文档
- style: 仅仅批改了空格、格局缩进、都好等等,不扭转代码逻辑
- refactor: 代码重构,没有加新性能或者修复bug
- perf: 减少代码进行性能测试
- test: 减少测试用例
- chore: 扭转构建流程、或者减少依赖库、工具等
Commit messages格局要求
# 题目行:50个字符以内,形容次要变更内容## 主体内容:更具体的阐明文本,倡议72个字符以内。须要形容的信息包含:## * 为什么这个变更是必须的? 它可能是用来修复一个bug,减少一个feature,晋升性能、可靠性、稳定性等等# * 他如何解决这个问题? 具体形容解决问题的步骤# * 是否存在副作用、危险?## 如果须要的化能够增加一个链接到issue地址或者其它文档
起源:https://juejin.im/post/684490...