繁体   English   中英

Git commit-msg hook:基于分支名称的一部分的前缀提交

[英]Git commit-msg hook: prefix commit based on part of branch name

我的分支名称模式如下ticketId_ticketDescription,例如MIT-1018 -make-goto-redirection-smarter

所以在这种情况下,我希望每个提交都以ticketId开头。它是[ MIT-1018 ]

所以如果我承诺

git commit -am“ 这是一条提交消息 ”,因此消息应为“ MIT-1018:这是一条提交消息

这是我的尝试

#!/bin/bash
ticket=`git rev-parse --abbrev-ref HEAD | sed -e 's/MIT-[0-9]+//'`
echo $ticket
comment=`cat $1`
search=`grep "$ticket" $1`
if [ -n "$ticket" ] && [ -z "$search" ]
then
echo "$ticket: $comment" > $1
fi

但这会将整个分支名称添加为前缀,而不仅仅是TicketId

您可以bash中将regex与字符类[[:alnum:]][[:digit:]]以根据需要提取票证标识符。

$ ticket="$(git rev-parse --abbrev-ref HEAD)"
$ commitMessage="This is a commit message"

# Assuming the variable has the string "MIT-1018-make-goto-redirection-smarter"
# ticket="MIT-1018-make-goto-redirection-smarter"

$ [[ $ticket =~ (([[:alnum:]]{3})-([[:digit:]]{3,})).* ]] && ticketID=${BASH_REMATCH[1]}
$ printf "%s\n" "$ticketID: $commitMessage"
MIT-1018: This is a commit message

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM