如何修复我的 git 环境中的预提交消息?
How to fix the pre-commit-msg in my git environment?
有人经历过.git/hooks/pre-commit-msg的奇怪行为吗?
该文件具有适当的执行权限。
实际上它被执行了。问题是提交,任何带有正确或不正确消息的提交,都会使执行进入错误状态。
总是。
正确的消息应该类似于这些示例:
- "ABC-123/ticket-task blah blha"
- "ABC-234/ticket-task fixed some things"
- "ABC-123/ticket-task added some"
其中 [test]、[fix] 或 [feat] 之后的第一个词是在一组之间选择的(例如 Added、Fixed、Upgraded..)
正在 OSX,使用 git,使用 zsh shell。
#!/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
有人经历过.git/hooks/pre-commit-msg的奇怪行为吗? 该文件具有适当的执行权限。 实际上它被执行了。问题是提交,任何带有正确或不正确消息的提交,都会使执行进入错误状态。 总是。
正确的消息应该类似于这些示例:
- "ABC-123/ticket-task blah blha"
- "ABC-234/ticket-task fixed some things"
- "ABC-123/ticket-task added some"
其中 [test]、[fix] 或 [feat] 之后的第一个词是在一组之间选择的(例如 Added、Fixed、Upgraded..)
正在 OSX,使用 git,使用 zsh shell。
#!/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