CatCoding

使用 overcommit 生成 git hooks

2018-02-26

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。

公号同步更新,欢迎关注👻