• Home
  • Posts
    • All Posts
    • All Tags
  • Daily Summary
  • Technical Debt
  • Valuable Blog
  • Projects
  • About
    • Robin photo

      Robin

      Write Elegant Code.

    • Learn More
    • Email
    • Github

Git Hook

07 Feb 2017

今天发现了一个很棒的东西:Git 钩子。

Git 钩子在 .git/hooks/ 目录下面,git 已经提供了一些 example 供我们参考,比如:pre-commit, pre-push。在你执行 git 相应的操作的时候就会触发这些钩子。

你可以直接去掉 sample 后缀那些示例钩子就会生效。当然你也可以自己写钩子,任何可执行的脚本都是可以的。不过脚本名字是约定好的,这也是为什么示例钩子去掉 sample 后缀才会生效的原因。

我今天就写了一个很简单的 pre-commit 钩子:在 commit 前对 python 文件通过 pylint 执行格式检查。这样可以将错误的发现提前。不用等到代码 push 到服务器打包报错再发警报了。

#!/bin/sh

for f in `find . | grep ".py$"`
do
    pylint --reports=n "$f" >> pylint.log
done

在 Windows 上安装 pylint

因为公司配的电脑是 Windows,所以还查了一下怎么在 Windows 上安装 pylint。

  1. 对于 Python 2.7.9 及以上版本以及提供了 pip 工具。然后通过 pip 就可以直接安装 pylint
    python -m pip install pylint
    
  2. pylint 装好后发现不能直接调用,需要通过 python 调用,不开心。研究后发现 pylint 其实就是一个 exe 文件来的,cd 到 pylint 所在的目录是可以直接运行的。那其实只要将它放在环境变量里面就可以了。我选择了 copy 一个到 python 所在的目录,因为这个目录已经加到了环境变量。这样就可以直接调用 pylint 命令了。

参考阅读:

  1. Git 钩子
  2. 拥抱敏捷开发(4)——本地构建


Share Tweet +1