1 分支
git工作流使用多个分支来完成版本管理工作。这些分支包括master分支、develop分支、feature分支、release分支和hotfix分支。
1.1 master分支
master分支是一个长周期分支。
1.2 develop分支
develope分支是一个长周期分支。develop分支维护正在开发中的代码。develop分支从master分支创建。当开发新功能时,开发者从develop分支创建feature分支进行开发。开发工作完成后,再合并到develop分支,之后删除对应的feature分支。在修复缺陷时,同样从develop分支创建fix分支,处理流程同feature分支一样。在发布过程中(建立release分支后),只有修复缺陷的feature分支和hotfix分支可以合并到develop分支。
1.3 feature分支
feature是短周期分支。feature分支是为实现指定特性,或修复非紧急缺陷而建立的分支。feature分支从develop分支创建,在完成开发工作后,合并入develop分支,然后删除该feature分支。feature分支应当命名为issue-XXX,其中XXX是特性对应的issue编号。
1.4 release分支
release是长周期分支。release分支负责维护即将发布的代码。release分支从develop分支创建,进行缺陷修复、生成文档和其他发布相关的任务。在发布过程中,如果有hotfix分支,或者修复缺陷的feature分支合并到develop分支,应当执行develop分支同release分支的合并。当发布完成后,将release分支合并到master分支,并分配一个版本号作为标签。然后删除该release分支。release分支应当以release-XXX命名,其中XXX是版本号。
1.5 hotfix分支
hotfix是短周期分支。hotfix分支用于进行缺陷紧急修复。hotfix分支从master分支创建,修复完成后,合并入develop分支和master分支,并为master分支建立新标签。
2 提交信息
提交信息格式如下
<type>(<scope>): <subject> // 空一行 <body> // 空一行 <footer>
其中,type可以是如下类型
类型 | 说明 |
---|---|
feat | 新特性 |
fix | 修复 |
docs | 文档 |
style | 代码格式 |
refactor | 重构 |
test | 测试代码 |
chore | 辅助工具 |
scope是影响的范围,比如数据层、控制层、视图层等,因项目而异。subject是提交的主题,其限制如下
- 使用英文编写。
- 不超过50字符。
- 首字母小写。
- 以动词开头,使用第一人称现在时。
- 结尾不加句号(.)。
body是对提交的详细描述,可以有多行。body的要求如下
- 使用英文编写。
- 不超过72字符。
- 使用第一人称现在时。
- 必须说明变更的目的和内容。
Listing 1: body示例
More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. Further paragraphs come after blank lines. - Bullet points are okay, too - Use a hanging indent
footer是可选的部分,仅当提交不兼容变更和关闭issue时使用。提交不兼容变更时,footer当以BREAKING CHANGE开头,并描述变更影响,如Listing 2: footer示例
BREAKING CHANGE: isolate scope bindings definition has changed. To migrate the code follow the example below: Before: scope: { myAttr: 'attribute', } After: scope: { myAttr: '@', } The removed `inject` wasn't generaly usefull for directives so there should be no code using it.
在关闭issue时,foot要写明issue编号,如
Closes #1234
或
Closes #12, #34, #56
2.1 Revert
如果当前提交目的是撤销以往的提交,提交header必须以“reert:“开头,接着是被撤销的提交的header。body为”This reverts commit <hast>.“,其中hash是被撤销提交的散列码。示例如下
revert: feat(pencil): add 'graphiteWidth' option This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
3 参考资料
- https://github.com/thoughtbot/dotfiles/blob/master/gitmessage
- https://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message
- http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
来源:oschina
链接:https://my.oschina.net/u/131191/blog/4770030