代码管理实践

1.问题

实际工程工作中遇到了一些问题:

2. Commit Message

2.1. 规范实践

  • 工程实践中,经常出现一个团队多个人用同一个git repo来开发代码
  • 该repo同时对应了多个服务或者组件,而每个服务需要独立维护自己的版本控制和发布

针对上述的情况,在实践中总结出如下的commit message 模板:

# [Issue] Type(<scope>): <subject>

# <body>

# <footer>

可以参考大神的文章 Commit message 和 Change log 编写指南

- Header

issue字段

对应工程控制的issue,例如redmine、jira或者github issue

type字段

scopre字段

对应相关服务/应用/组件/框架名称

subject字段

commit的简述,不超过50个字符

- Body

本次 commit 的详细描述,可以分成多行,可省略

用来关闭 Issue或以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法, 可省略

2.2. 本地git配置

可以下载本文中的git commit message 模板文件后配置到本地git中 git_commit_template.txt

wget http://source.snowwalf.com/20180723/git_commit_template.txt -O ~/.git_commit_template.txt

git config --global commit.template ~/.git_commit_template.txt

注意 –global对全局生效,如果仅对当前repo生效,请使用–local

3. Changelog生成

本地脚本用于生成changelog文件 changelog.sh

Git changelog generator

Usage: changelog.sh [Options]

Options:
    -a [app]					app name, the same as score in git commit
    -f [output_file]	 	output file, default to be "CHANGELOG.md"
    -h                  		  Show usage
    -r [release]        	  new release version, default to be "v1.0.0.0"
    -t [tag_prefix]          exist tag prefix, such as FGP for version FGPv1.0.2.0
 
Example:
 ./changelog.sh  -a feature-group-private -b dev -r v1.0.0.1 -t FGP
Table of Contents