git hooks
很方便地可以在 git 操作流程的各个阶段加入 hooks,比如执行一些脚本来检查代码风格、跑单元测试、做代码静态检查等。git hooks 的试用方法是在.git/hooks 目录下写各种脚本,但是.git 目录的这些脚本是不会 checkin 到 repo 里的,所以如果一个代码如果被多个开发人员共享就会显得不太方便同步 hooks。
当然也有一些其他方法来解决这个问题,比如配置 links 或者对于git 2.9
以后也可以使用来定制 hooks 的目录:
git config core.hooksPath hooks
对于熟悉 Ruby 的同学可以使用overcommit这个 gem 来解决。使用方法就是通过配置.overcommit.yml
,比如:
PreCommit:
RuboCop:
enabled: true
command: ['bundle', 'exec', 'rubocop'] # The shell command should run
AuthorName:
enabled: false
然后执行命令:
overcommit install
来自动生成各种 hooks,通常后面的修改都是修改这个 yaml 文件即可,不过记得修改后需要overcommit --signed
来重新生成 hooks。