版本管理规范

版本管理规范

分支规范

主要分为4个分支,dev,test,master, release

dev用于本地开发

test用于发布测试环境

master 主线代码库

release分支,代表发布的线上版本

分支使用规范

开发人员在dev分支上开发,开发完成需要发布到测试环境的时候,合并代码到test分支,然后将test分支代码发布到测试环境,测试环境测试出来的bug,直接在test分支修改,当测试环境全部测试通过,准备发布到正式环境的时候,将test代码合并到master分支和dev分支,并且创建一个release分支并打tag,

分支名称为release_V版本号_yyyyMMddHHmmss

下一次迭代开发内容接着在dev分支上开发

当线上环境出现bug,需要修复的时候,直接在release分支修改发布测试环境,测试通过之后发布正式环境,然后将代码合并到dev分支

注意事项

  1. 在测试环境没有测试通过之前,禁止发布版本到正式环境,正式版本发布前半小时,必须邮件通知所有相关人员
  2. 每次提交代码,必须详细编写comment

格式为 type:主题,如果为修改bug,必须标注对应的JIRA编号

type用于说明 commit 的类别,只允许使用下面8个标识。

  • feat:新功能(feature)。
  • fix:修补bug。
  • docs:文档更新(documentation),包括代码注释的修改等。
  • style: 格式,不影响代码含义的变更,如空格、格式化、漏掉分号等。
  • refactor:重构,并未修复缺陷或添加功能。
  • perf::性能(performance)优化。
  • test:补充测试用例。
  • chore:构建过程或辅助工具的变动,例如文档生成工具、添加日志等

主题必须能清晰的表述这次提交代码的变动

  1. 控制提交粒度,不要一次性提交包括多个问题的代码,一个问题的相关代码作为一次提交
  2. 版本号规范,V主版本号.子版本号.修正版本号

主版本号.子版本号由产品经理确定,修正版本号从0开始计算,每次修改bug或者增加小功能时+1

分支使用流程图

版本管理规范

Git 日常操作规范

1 推送本地分支代码到服务器(通过fetch+rebase)

推送本地代码到服务器时,需要先将服务器最新代码同步到本地,然后进行合并,再进行push操作。

在push之前,可有两种操作方式:git pull和 git fetch + git rebase。

建议使用 git fetch + git rebase两步操作。

 

在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并。

而使用git rebase后产生的结果会比使用git merge更为简洁。

 

git pull:相当于是从远程获取最新版本并merge到本地。合并结果将会应用到本地分支。

git fetch:相当于是从远程获取最新版本到本地,不会自动merge。本地分支代码不变,需要继续进行merge或rebase。

git pull相当于 git fetch + git merge。

git merge:将两个分支进行合并,合并的结果是生成一个新的快照(并提交)。

git rebase:将两个分支进行合并,合并结果比较整洁,不会生产新的快照。

如下所示,假设当前工作分支为mywork,有人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了:

版本管理规范

以下是git merge后的结果:

版本管理规范

以下是git rebase后的结果:

版本管理规范

即:

版本管理规范

$ git checkout develop

$ git fetch

$ git rebase

$ git push

Icon 

可通过以下命令进行全局设置:

$ git config --global pull.rebase true 

以后用git pull就等于git fetch+git rebase了

 

2合并服务器上的某个分支到另外一个分支(通过merge)

rebase原则:只对尚未推送或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作。

为防止产生不可预料的事情,已经推送到服务器的分支直接经过merge合并,不使用rebase。