当前位置: 首页 > Web前端 > HTML5

从0到1开发实用手机站(二):Git提交规范配置

时间:2023-04-05 16:44:12 HTML5

生活不能随便过,代码也不能随便写。在上一篇文章中,我们已经搭建好了项目,那么我们是不是马上开始写页面呢?不!无论你在哪个公司,都会有相应的代码规范。新入职的员工往往要接受代码规范学习作为第一步。既然是实际项目,在写页面之前我们就得配置好相关的规范。今天,我们就来看看git在项目中的使用以及相关规范。Git规范和项目配置的目的是为了统一团队的GitCommit标准,方便后续的代码审查、版本发布、变更日志的自动生成;可以提供更多更有效的历史信息,方便快速预览和快速代码合并cherry-pick;其他团队成员在做gitblame时可以快速理解代码的用途;版本说明1.分支master:主分支(保护分支),不能直接修改代码提交到master上;develop:测试分支,所以开发完成后需要提交测试的功能合并到这个分支;feature-*:新增功能开发分支,根据不同需求创建独立的功能分支,开发完成后合并到develop分支;hotfix-*:bug修复分支,根据实际情况对发布版本进行bug修复;release-*:预发布分支。2.Tag采用三阶段格式,v版本。里程碑。序号,如v1.2.3架构升级或重大结构调整,修改第一个新功能上线或重大模块调整,修改第二个bug修复上线,修改第三个Bit3.changelog版本正式发布后,一个changelog需要制作文档,方便后续问题追溯。提交规范Gitcommitlog基本规范对于每次提交,Commitmessage包括三部分:Header、Body和Footer。()://空行//空行

注意冒号后面有一个空格。其中Header是必须的,Body和Footer可以省略。Header:Header部分只有一行,包括三个字段:type(必填)、scope(可选)和subject(必填)。type表示提交的类型,例如修复错误或添加新功能。所有type类型如下:feat:Addfeaturefix:Fixbugdocs:只修改文档,如README,CHANGELOG等style:只修改空格,格式缩进等,不改变代码逻辑refactor:代码重构,没有添加新特性或修复bugsperf:优化相关,比如提升性能,experiencetest:测试用例,包括单元测试,集成测试等revert:回滚到之前的版本build:影响构建系统或外部依赖的变化ci:mainpurpose修改项目继续集成流程chore:不属于以上类型的其他类型范围用于说明commit影响范围,如数据层、控制层、视图层等.,取决于项目。subjectsubject是commit目的的简短描述,不超过50个字符。其他注意事项:以动词开头,用第一人称现在时,如change,而不是changed或changes。好的。需要描述的信息包括:为什么需要进行此更改?可能用来修复一个bug,增加一个特性,提高性能,可靠性,稳定性等等,他是怎么解决这个问题的?是否存在解决问题步骤的具体描述?副作用、风险?两个注意事项:使用第一人称现在时,比如change而不是changed或changes。永远不要忘记第二行是空行Footer:如果需要,您可以添加问题地址或其他文档的链接,或者关闭问题。项目配置规范已经有了,下面就按照规范开始实战吧。首先新建两个分支:gitbranchdevelopgitbranchfeature-git提交规范然后切换到新的feature分支:gitcheckoutfeature-gitsubmissionspecification接下来我们添加git提交信息验证的配置。使用commitizen进行标准的全局安装:npminstall-gcommitizenmac需要在之前的sudo项目目录下执行:commitizeninitcz-conventional-changelog--save--save-exact配置完成后,在使用gitcommit命令时,使用gitcz代替。此时会出现options生成符合格式的Commit消息。好的,让我们提交刚刚所做的更改。先将修改添加到暂存区gitadd。使用gitcz而不是gitcommitgitcz结果如下:生成Changelog因为我们的commit是由向导生成的,完全符合规范,当有新版本发布时,可以使用脚本自动生成Changelog.生成的文档包括以下三个部分:新功能错误修复重大更改。每个部分都将列出相关的提交并具有指向这些提交的链接。当然,生成的文档允许手动修改,所以你可以在发布之前添加其他内容。Conventional-changelog是一个生成Changelog的工具。运行如下命令即可:全局安装npminstall-gconventional-changelog-cli项目目录运行conventional-changelog-pangular-iCHANGELOG.md-s-r0这时候你会发现多了CHANGLOG.md项目目录下的文件。我们可以把命令放在脚本中:修改package.json文件,在脚本中添加:"version":"conventional-changelog-pangular-iCHANGELOG.md-s-r0&&gitaddCHANGELOG.md"让我们makeacommit试试看:gitadd.gitcommit-m"feat:addthefunctionofgeneratingchangelog"然后运行:npmrunversion我们看到CHANGELOG.md文件有我们的提交日志后:注意我提交了之前有过一次,但是type用的是build,所以不会在log中反映出来。最后,我们再次提交CHANGELOG.md的变更:gitcommit-m"docs:AddCHANGELOG.mdfile"细心的朋友可能已经发现,我这两次提交都没有使用gitcz而是为了方便直接使用在gitcommit-m"的形式",如果一直记得提交信息规范的话用这个方法是可以的,但是有时候错误是难免的,比如不小心把feat打到脚里了,那么如何防止错误呢?来看看。使用commitlint验证提交信息。首先,安装依赖项:npminstall--save-dev@commitlint/{cli,config-conventional}npminstall--save-devhusky@vue/cli-service也会安装yorkie,但是yorkieforkfromhusky并且不兼容与更高版本。所以这里我安装了husky,在根目录下新建了一个文件commitlint.config.jsmodule.exports={extends:["@commitlint/config-conventional"],rules:{"type-enum":[2,"always",["feat","fix","docs","style","refactor","test","chore","revert"]]],"subject-full-stop":[0,"never"],"主题案例":[0,"从不"]}};在package.json中添加husky配置"husky":{"hooks":{"commit-msg":"commitlint-e$HUSKY_GIT_PARAMS"}}就这样,现在来测试一下:上图可以看到,当我输入错误的类型,就会报错,这样我们就不用担心不小心犯了自己没有注意到的错误。修改后提交成功。最后,让我们把今天的工作提交到github。gitcheckoutdevelopgitmergefeature-git代码提交信息审核。gitcheckoutmaster小四才知道在实际工作过程中遵守规范的重要性。尤其是团队开发或者开源项目,可以说一个程序员的代码质量可以从每一次的提交记录中体现出来,所以希望大家多多关注。接下来的几篇文章将为大家带来代码校验、自动格式化、手机适配、判断接入客户端类型等准备工作。关注我的公众号“技术闲聊”,持续关注!本系列文章内容:使用vue-cli3从0到1搭建全功能手机站(一)从0到1开发实用手机站(二):Git提交规范配置从0到1使用VUE-CLI3开发实战(三):ES6知识储备