bash - 如何在我的 git 环境中修复 pre-commit-msg?
问题描述
有人经历过 .git/hooks/pre-commit-msg 的奇怪行为吗?该文件在执行时具有适当的权限。实际上它被执行了。问题是提交,任何带有正确或不正确消息的提交,都会使执行陷入错误。总是。
正确的消息应该类似于以下示例:
- “ABC-123/ticket-task blah blha”
- “ABC-234/ticket-task 修复了一些问题”
- “ABC-123/ticket-task 添加了一些”
其中 [test] 或 [fix] 或 [feat] 之后的第一个单词是在一组(如已添加、已修复、已升级..)之间选择的
使用 git 和 zsh shell 在 OSX 上工作。
#!/bin/bash
#
commit_message=$(cat .git/COMMIT_EDITMSG)
commit_error="Error in the commit message. Prefix with
JIRA ticket. For example UXD-1234/git-hook"
if [[ ! $commit_message =~ /([A-Z]+[-][\d]+\/\S+)/ ]]; then
echo >&2 $commit_error
exit 1
fi
这段代码有错误吗?
提前致谢
解决方案
所以这里是正确答案
^[A-Z]+-[0-9]+/[a-zA-Z]
感谢@jonrsharpe
推荐阅读
- javascript - 使用纯 javascript 从 JSON Url 读取数据并以 HTML 格式显示
- android - 反应本机应用程序中的静默推送通知
- javascript - JavaScript:命名空间与作用域
- cassandra - Cassandra 查询超时,当明确指定为 LOCAL_QUORUM 时将一致性视为 ALL
- java - 如何将“+999999999-12-31T23:59:59.999999999”,以字符串形式存储的 OffsetDateTime 的最大值转换为 LocalDate
- django - Django 比较两个查询集并根据这些值创建一个列表,并为每个项目添加附加数据
- ios - 如何对sceneView中节点的子节点进行hitTest?
- postgresql - 导入到 postgres 时从 CSV 中删除封闭的双括号
- javascript - 将模块变量切换为实例变量
- ruby - 用 Ruby 计算日期