SVN(集中式版本控制系统)
中央服务器是完整的,commit动作直接连接服务器执行
GIT(分布式版本控制系统)
都是完整的,功能更强大,自然而然操作更复杂一些。git在本地也是以git版本库的形式管理,可以在本地做一些修改,然后commit到本地的版本库,最后push到服务器。
还有啥呢,如CVS、VSS….但和SVN一样都是单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。(没用过,了解也不多)
工作区间: 即我们创建的工程文件, 在编辑器可直观显示;
缓存区: 只能通过git GUI或git shell 窗口显示,提交代码、解决冲突的中转站;
本地仓库: 只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处;
远程仓库: 即保存我们代码的服务器,本文以公共版本控制系统:gitlab为例,登录gitlab账号后可直观显示;
浅谈下我们实际场景常用的命令吧
1、配置
2、常用命令
3、一些辅助操作
目录中新建了一个.gitignore文件,将想要忽略的文件或者目录保存即可
聊一聊分支设计的规范(良好习惯的养成)
明确一点:规范是死的,人是活的,再好的规范也要团队适合,并且需要团队成员去遵循,没有一成不变的规范
1、软件环境
DEV 环境(Development environment):用于开发者调试使用。
FAT 环境(Feature Acceptance Test environment):功能验收测试环境,用于测试环境下的软件测试者测试使用。
UAT 环境(User Acceptance Test environment):用户验收测试环境,用于生产环境下的软件测试者测试使用。
PRO 环境(Production environment):就是生产环境。
2、分支命名
分支 | 名称 | 环境 | 可访问 |
---|---|---|---|
master | 主分支 | PRO | 是 |
release | 预上线分支 | UAT | 是 |
hotfix | 紧急修复分支 | DEV | 否 |
develop | 测试分支 | FAT | 是 |
feature | 需求开发分支 | DEV | 否 |
master 分支
master为主分支,用于部署到正式环境(PRO),一般由release或hotfix分支合并,任何情况下不允许直接在 master 分支上修改代码。
release 分支(一般在发布日由运维创建,我们公司目前是常驻的pre-production)
release为预上线分支,用于部署到预上线环境(UAT),始终保持与master分支一致,一般由develop或hotfix分支合并,不建议直接在release分支上直接修改代码。
如果在release分支测试出问题,需要回归验证develop分支看否存在此问题。
hotfix /repair 分支
hotfix为紧急修复分支,命名规则为hotfix-开头。
当线上出现紧急问题需要马上修复时,需要基于release或master分支创建hotfix分支,修复完成后,再合并到release或develop分支,一旦修复上线,便将其删除。
develop 分支
develop为测试分支,用于部署到测试环境(FAT),始终保持最新完成以及 bug 修复后的代码,可根据需求大小程度确定是由feature分支合并,还是直接在上面开发。(注:在我们公司不建议直接上面修改)
一定是满足测试的代码才能往上面合并或提交。
feature 分支(我们公司以迭代代号创建)
feature为需求开发分支,命名规则为feature-开头,一旦该需求上线,便将其删除(但可以按照公司习惯,比如删除一个月以前的…..)。
commit提交规范
提交的信息很重要,可以方便我们查阅日志,建议大家认真填写,可以参考规范:(如下)
(scope):
type表示 动作类型,可分为:
fix:修复 xxx Bug,有时可在相关commit上加上修复的bug的等级
Blocker (中断) : 客户端程序无响应,无法执行下一步操作 Critical (严重):功能点缺失 Major (较严重):功能点没有满足需求 Normal (普通):数值计算错误,js错误 Minor (次要):界面UI与需求不符 Trivial (轻微):辅助描述说明不清楚,提示语句错误之类…
feat:新增 xxx 功能
test:调试 xxx 功能
style:变更 xxx 代码格式或注释
docs:变更 xxx 文档
refactor:重构 xxx 功能或方法
chore:构建过程或辅助工具的变动,比如项目新加了别的js插件之类的
scope表示 影响范围,可分为:模块、类库、方法等。
subject表示 简短描述,最好不要超过 60 个字。
如 git commit -m ‘fix(购物车):满增满减活动返回结算价因浮点问题导致不精准问题’