我们有一个很好的GIT预提交钩子,以及一个很好的commit-msg.预提交钩子执行语法验证,commit-msg执行一些其他业务逻辑.这一切都运作良好.
但是,我想在预提交钩子中添加编码标准验证.事实上,它已经添加了.但是,我不想严格执行我们的开发人员以符合编码标准,默认情况下我想验证标准的代码,但如果他们想通过编码标准验证,我想让他们通过在提交期间添加参数来传递.
是否有可能捕获/解释在提交前提交给git的任何命令行参数,以便在预提交钩子级别跳过编码标准验证(可选?)
或者只能通过分析特定子字符串的提交消息在预提交消息钩子中?
请分享您使用git pre-commit hook(或其他git hooks)创建命令行控制条件代码的方式(以及在何处)的最佳实践.
Amb*_*ber 11
一个简单的方法是简单地使用环境变量:
STANDARDS=no git commit
Run Code Online (Sandbox Code Playgroud)
然后在脚本中(Bash中的例子,但你可以用你的钩子所用的任何语言读取env变种):
if [ "$STANDARDS" != "no" ]; then
...check for code standards...
fi
Run Code Online (Sandbox Code Playgroud)
Git通常不会将信息传递man githooks到每个钩子中列出的信息之外,因此尝试使用"命令行选项"la git commit --no-standards或其他类似的信息将无效.
要添加@Amber所说的内容,您应该可以:
STANDARDS=no git commit -m "committing"
Run Code Online (Sandbox Code Playgroud)
并具有适当的预提交钩子,该钩子将查看环境变量并做出决策。
当然有--no-verify,但是我想您不想跳过整个预提交:
-n-
不验证该选项绕过了pre-commit和commit-msg挂钩。另请参见githooks(5)。
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |