当前位置: 首页 > 后端技术 > Node.js

更优雅地使用Git

时间:2023-04-03 18:10:56 Node.js

如何更优雅地使用Git?写commitmessage每次提交代码Git都必须写Commitmessage,否则无法提交。我们不仅要写Commit消息,还要写清楚清楚,说明这次commit的目的。$gitcommit-m"Submitinformation"在编辑器中写入commitmessage$gitcommit写一个好的Commitmessage有很多好处:1.统一团队Gitcommitlog样式2.方便以后ReviewingCode3.帮助我们写aChangelog4.可以很好的提高项目的整体质量。Commit提交规范业界比较喜欢Angular的commit规范http://suo.im/4rsYeeCommit消息包括三部分:Header、Body和Footer。完整格式如下:():

1)type提交commit的类型,包括以下内容-feat:newfunction-fix:修复问题-docs:修改文档-style:修改代码格式,不影响代码逻辑-refactor:重构代码,理论上不影响已有功能-perf:提升性能-test:添加修改测试用例-chore:修改工具相关(包括但不限于文档、代码生成等)2)scope修改文件的范围,如:viewlayer,controllayer,docs,config,plugin3)subject-subjectisashortdescriptionofpurposeofcommit(用一句话清楚的描述这次第一次提交做了什么),不超过50个字符4)body-补充主题添加详细描述,可以分成多行,适当添加原因,目的和其他相关因素,否则不写5)footer-当有不兼容的修改(BreakingChange)时,必须在这里清楚地描述-关闭问题或链接到相关文档,例如Closes#1,Closes#2,#3使用commitzencommitzen这个工具可以帮助我们编写规范的Commit消息。GitHub:https://github.com/commitizen...使用npm全局安装$npminstall-gcommitizen在项目中使用angular的commit规范$commitizeninitcz-conventional-changelog--save-dev--save-exact那么我们就可以愉快的使用gitcz来代替gitcommit命令了。当然我们也可以在npm脚本中添加"script":{"commit":"gitcz"}然后直接使用npmruncommit来使用gitmojigitmoji和commitzen帮我们写一个标准的commit信息,但是gitmoji有更多有趣的门司表情。(使用moji表示类型)GitHub:https://github.com/carloscues...安装使用#安装$npmi-ggitmoji-cli#使用$gitmoji-c选择一个符合场景的moji提交这种使用Git钩子的变化与其他版本控制系统相同。当某些重要事件发生时,Git可以调用自定义脚本。Git有很多钩子可以用来调用脚本来自定义Git。请参阅.git->hooks目录中的示例。比如:pre-commit就是在代码提交之前做一些事情。打开hooks目录下的*.sample文件,可以看到里面写的shell脚本。但是如果我想用Js写hooks怎么办?哈士奇和pre-commit都能满足你。现在我们想实现一个在提交代码时使用Eslint进行代码检查的功能。我们先看看pre-commitGitHub:https://github.com/observing/...#下载并安装npminstall--save-devpre-commitinpackageConfigurepre-commit"scripts"in.json:{"lint":"eslint[options][file|dir|glob]*",},"pre-commit":["lint",]现在尝试提交代码gitcommit-m'Keepcalmandcommit'然后尝试huskyGitHub:https://github.com/typicode/h...还是先下载,不过这里我们使用的是@next版本,与正式版略有不同。npminstallhusky@next--save-dev和pre-commit一样,还是在package.json中配置。但是它可以通过预提交挂钩做更多的事情。//package.json{"scripts":{"lint":"eslint[options][file|dir|glob]*",},"husky":{"hooks":{"pre-commit":"npmlint","pre-push":"..."}}}本文介绍如何编写标准的Commit消息,并使用commentzen和gitmoji帮助我们编写标准的Commit消息。最后引入Githooks,结合husky或pre-commit与Eslint构建代码检测工作流。当然,你可以做更多。文末,欢迎关注我的公众号一起玩。有技术干货和废话,关注回复【888】收到惊喜左手码右手砖,抛砖引玉