Git规范

2021-07-09 by uino 287 Git知识

Git 分支规范

我们采用 Git flow 做为分支规范,如图

gitflow.png

长期存在分支

  • master 稳定的版本
  • develop 开发分支

项目存在短期的分支,主要类型有写新功能,修复问题,预发布(也称测试)

  • fix-xxx 修复问题分支,修复合并到 develop 后会删除
  • feat-xxx 开发新功能分支,开发完合并到 develop 后删除
  • pre-release-xxx 预发布分支,测试测完后,同时合并到 master 和 develop 后删除

一些关于分支的文章

Commit 规范

Commit 规范我们统一遵循使用 Angular 团队提议的《AngularJS Git Commit Message Conventions》

格式如下

<type>(<scope>): <subject> 必须填写
空一行
<body> 选填
空一行
<footer> 选填
  • type 类型有如下,只能从一下列表选择
    • build:影响生成系统或外部依赖性的更改
    • ci: 更改 CI 配置文件和脚本
    • feat: 新功能(feature)
    • fix: 修补 bug
    • perf: 提高性能的代码更改
    • docs: 文档(documentation)
    • style: 不影响代码含义的更改(不影响代码运行的变动)
    • refactor: 代码修改既不修复错误,也不添加特征(即不是新增功能,也不是修改 bug 的代码变动)
    • test: 添加缺失测试或纠正现有测试
    • revert: 撤回
  • scope 影响范围
  • subject 是 commit 目的的简短描述,不超过 72 个字符
  • body Body 部分是对本次 commit 的详细描述,可以分成多行
  • footer 不兼容变动主要及一些额外说明

例子 1

feat($browser): onUrlChange event (popstate/hashchange/polling)

Added new event to $browser:
- forward popstate event if available
- forward hashchange event if popstate not available
- do polling when neither popstate nor hashchange available

Breaks $browser.onHashChange, which was removed (use onUrlChange instead)

例子 2

fix($compile): couple of unit tests for IE9

Older IEs serialize html uppercased, but IE9 does not...
Would be better to expect case insensitive, unfortunately jasmine does
not allow to user regexps for throw expectations.

Closes #392
Breaks foo.bar api, foo.baz should be used instead

以下是一些帮助文档,必须读一读