Git commit msg 最佳实践
1 git commit 要求
1.1 git commit message要求
// 1. 每次提交把你的特性描述出来,如:
git commit -m “[需求名]功能点”
//2. 如果这个需求修改很多文件的话,就像被建议的,也为了不被review的人骂,就一个功能点一个功能点的提
git commit -m “[盖房子]打地基”
git commit -m “[盖房子]装修”
git commit -m “[盖房子]娶老婆”
//3. 如果你把你的task号也粘在了你的commit 信息里,bigger就又高了一级,git和task系统会自动链接过去
git commit -m “[盖房子]打地基 task”
//4 一定记得,为了让你的commit尽可能的挨在一起,一定要做rebase
1.2统计特性的人
//其中<commit old id>和<commit new id> 是你想要统计的所有commit的首和尾id。
git log --pretty=format:’%d %s %cn’ <commit old id>..<commit new id> | grep “\[“ | awk -F’[‘ ‘{print $2}’ | sort | uniq
这样就能打印所有提交和提交人,去重的话在Uniq以下
1.3为什么要这样做
1.3.1 好统计
我们在切release时候每次都会统计这次的上线特性,这事我们搞个wiki来做的。 但是首先,面对乱七八糟的commit 信息为”update”/”update by xxx” 这样的提交,统计者根本看不出什么特性。 其次,人为的统计经常会被忘掉,这样,提测时候少测试了你这个特性,然后无bug算你牛,有bug只能算你背了。
1.3.2 出了问题好剔除
直接git rebase
2 git tag
2.1 简述
tag一般都打在生产分支上,我们的话就是master,为什么打在生产分支,因为需要所有需要上线的commit这时候才是最全的,develop切release时候可能不是,有可能release测出问题还会改,我是这么认为的,就是tag一般最后完事做总结用的。
2.2 使用
tag比较简单,就那几个命令,可以看这个https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE
如果想看两个tag之间所有commit 的话,可以git tag <old tag>..<new tag>
就可以。
当然,这个亦可以通过git log –pretty=oneline