簡體   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