A lightweight and extensible tool for supervising and correcting of development posture
一个轻量可扩展的开发姿势监督与矫正工具
posture是一个轻量可扩展的开发姿势监督与矫正工具,让您快速开始以正确的规范编写和管理代码,解决团队开发时代码百花齐放、Git提交信息乱写、Git误操作等一系列开发中的"姿势不正确"问题。
您可以先通过以下命令完成下载安装操作,如果出现install successfully
提示,则说明安装成功。这时使用posture
或posture help
命令都可以查看使用帮助。
git clone https://github.com/WGrape/posture.git && cd posture && bash ./install.sh
在安装成功后,会在您的posture项目安装目录下生成一个.env
环境配置文件,用于对posture的一些行为控制。另外在~/.bash_profile
文件中写入如下内容,自动创建$POSTURE_PATH
变量并添加到$PATH
变量中,以确保您可以开始使用posture工具。
# Here is the config of posture
export POSTURE_PATH={{the path of posture installation}}
export PATH=$PATH:${POSTURE_PATH}
这样,之后就可以通过echo $POSTURE_PATH
命令查看posture的安装目录。
在团队开发中的任何阶段,都可以使用如下命令快速矫正,它会自动对git配置、代码风格等几个方面进行调整,下面会详细介绍。
cd {your_project} # notice: not cd posture project !
posture adjust
在执行完adjust
命令时,posture
会自动执行以下操作,确保大家的git配置保持一致。
# 忽略文件权限
git config --global --add core.fileMode false
使用
git config --global -l
或git config --global -e
查看配置情况。
在执行完adjust
命令后,在您的项目根目录下,会生成一个.editorconfig
文件,它会为您的IDE设置统一的代码规范。
在开发的任何阶段,都可以使用如下命令快速扫描我们的任何项目,对一些关键字比如"密码"等进行扫描,防止出现安全性问题。
cd {your_project} # notice: not cd posture project !
posture scan
在posture
安装路径下的.env
配置文件中有定义scan_keywords
关键字数组,我们把需要检查的关键字输入进去,就可以实现自定义的扫描关键字需求。
在开发前,请使用如下命令设置全局钩子。这样无论在哪个项目下,当使用git命令时,相应的钩子都会自动工作,实时监督我们在git流程中的操作,一旦出现姿势错误的情况,就会即时发出提醒并中断操作。
cd {your_project} # notice: not cd posture project !
posture hook
当需要取消全局钩子时, 执行unhook
命令即可
cd {your_project} # notice: not cd posture project !
posture unhook
使用
git config --global -l
或git config --global -e
查看配置情况。
当使用git checkout/git switch
命令时,会自动执行checkout钩子,如下图所示。
在使用git pull
命令时,会自动执行pull钩子(由post-merge钩子实现),如下图所示。
当使用git commit
命令时,会自动执行commit钩子,如下图所示。
如果在主分支(main/master)直接编辑提交代码,会出现如下提醒并中断操作。
提交成功后会触发post-commit
钩子,自动在$POSTURE_PATH/storage/
目录下生成一条以天为单位的commit.${day}.log
commit日志文件,以实现每日工作统计等功能。
# 日志内容如下
2021-08-17/10:51:44 posture wgrape test 3exxxxx feat:新增钉钉WebHook
2021-08-17/10:56:44 posture wgrape test 3exxxxx feat:新增commit日志记录功能
# 每行由6部分组成
-------------------------------------------------------------
| date | project | user | branch | commit_id | commitMessage |
-------------------------------------------------------------
当使用git push
命令时,会自动执行push钩子,如下图所示。
如果提交了与本地不一致的分支,会出现如下提醒并中断操作。
如果需要卸载,在执行完以下命令后,手动删除$POSTURE_PATH
目录即可。
cd $POSTURE_PATH && bash ./uninstall.sh
为保证您的良好使用体验,建议使用最新版的posture工具,执行以下命令即可完成更新。
posture update
如果您觉得项目有用,欢迎star !您还可以参考如何贡献文档来共同参与此项目,欢迎加入 !