[英]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.