irmi
2年前写了一个git指令托管工具,虽然一直在用但也没维护,一些操作麻烦的地方也随着使用习惯淡化了,最近心血来潮翻出来看了下,发现2年前的实现有点臃肿,所以重构了一翻,记一下使用方式,也顺便推广推广,👉irmi。
最初目的是为了解决在项目提测过程中操作git指令过多的问题,并且有时候提测到了测试分支后忘记切回开发分支,于是不知不觉就在测试分支写了新代码,导致后续又要迁移代码啥的乱七八糟的操作,很影响心情。
背景
对于我们公司而言,提测流程会是这样:
在dev分支开发,开发完毕后,提交到dev仓库进行部署开发环境,自测完毕后,再切换到test分支,然后于dev合并,再提交到test仓库部署测试环境,最后切换回dev分支。
整个流程简化就是:
dev->commit->push->checkout<test>->merge<dev>->push->checkout<dev>(不考虑中间的自测阶段)
显然整个链路是很长的,手动敲一遍还容易敲错。即使用可视化工具,也是要点击多次的,并且也要确认自己点击的操作是否正确。
为了减少这种心智负担,就想着写一个指令托管工具,只需要预先配置好整个链路,只需要执行一次命令即可按照期望的执行下去。
先看效果
对于上诉的流程,用irmi执行效果是这样的
执行irmi push后选择要执行的步骤即可按照要求执行完整个流程!!非常舒服。
当然中间会遇到需要用户进行输入的步骤,比如演示中的commit操作,还包括merge,checkout等等。
介绍
irmi提供了push,git,step,config,show,del操作,具体可以看文档。其中比较有意思的是push,step和git,这里特别介绍一下。
push
执行指令步骤,其中内置了上诉演示的步骤。
执行完irmi push指令后,再选择要执行的步骤即可
当然是可以自定义配置步骤的,通过
step命令可以进行自定义步骤配置。
step
执行irmi step可选择新增步骤还是删除步骤,选择新增步骤后会列出目前支持的所有常见git操作
按需求依次配置步骤,配置完成后,选择
完成选项,再取个名称即可配置完成。
其中会有些步骤可以配置额外参数,比如merge可以配置需要合并的分支,当然也可以回车跳过不配置,不配置的话会在执行的时候选择。
git
push操作是执行配置好的步骤,而git则是直接执行想执行的步骤,不用配置。在生产中有时候会临时执行一些指令操作,不可能每次都要先配置好再执行,所以提供了git命令,并且内置了常用的操作options。只需要执行irmi git -[options]。
options
-a: 添加到暂存区
-c: 提交代码
-p: 推送
-pt: 推送标签
-b: 创建分支
-bt: 从指定tag创建分支
-t: 打标签
-d: 删除本地分支
-do: 删除远程分支
-dt: 删除标签
-dto: 删除远程标签
-ck: 切换分支
-m: 合并分支
可以组合使用:irmi git -acp代表add->commit->push。
结尾
通过快2年的使用情况来看,的确会提高工作效率,特别是在项目测试阶段bug比较多的时候。当然目前irmi还有许多没有考虑全面的地方,使用过程中也会有些不合理的地方,欢迎大家提意见,也欢迎加入一起开发,毕竟我对node也不太熟悉,还在摸索中。谢谢大家耐心观看,第一次写这种文章,文笔不好,多多包涵。