Я придумал следующую ловушку git prepare-commit-msg:
#!/bin/sh
BRANCH=`git branch | grep '^*' | sed -e 's/^\* //'`
MESSAGE=`cat "$1"`
JIRA_ID=$(echo "$BRANCH" | grep -Eo "[A-Z0-9]{1,10}-?[A-Z0-9]+-\d+")
if [ -z "$JIRA_ID" ]; then
echo "$MESSAGE" > "$1"
else
echo "[$JIRA_ID] $MESSAGE" > "$1"
fi
Он выполняет свою работу, добавляя имя ветви (в форме BRANCH-123) к каждому сообщению фиксации. Однако я не хочу, чтобы это работало с коммитами слияния, которые имеют автоматически генерируемые сообщения коммитов s.a. Merge branch 'master' into BRANCH-123
. Который с моим крючком превращается в BRANCH-123 Merge branch 'master' into BRANCH-123
Мне нужно отредактировать скрипт, чтобы как-то игнорировать (не применять ловушку) коммиты, начиная с Merge branch
.