一、前言
Go语言官方提供有:
- gofmt 来进行Go代码格式化
- go tool vet 检查Go源码中静态错误
第三方提供有: - golint 检查GO代码风格(注释,命名等)
- goimports 自动导入需要的import statement和自动移除未被使用import statement
下面的pre-commit hook将上述的四个工具集成在一起。在将git暂存区中的代码commit到仓库之前,会对被改动的Go文件(不包括vendor目录下的文件)做下面的工作:
- 自动调整被改动文件的 import statement
- 自动格式化被改动文件
- 展示代码中的静态错误
- 展示不符合规范的代码风格问题
上述1和2是自动进行的, 而3和4则要求开发者按照提示进行修正,只有静态错误和代码风格全部修正完成之后,才能够commit成功。
二、用法
下载第三方的golint, goimports工具
1
2go get golang.org/x/tools/cmd/goimports
go get golang.org/x/lint/golint将下面的脚本拷贝到项目仓库的
.git/hooks/pre-commit
文件中(没有该文件新建后一个)赋予文件可行性权限,并且重新加载git配置
1
2chmod +x .git/hooks/pre-commit
git init
三、脚本
1 |
|