Могу ли я использовать сценарий коммитов для git?
Мы работаем над тикетами, и когда мы используем номер тикета в сообщении git commit в первой строке, то тикет обновляется сообщением коммита.
Для простоты мы всегда работаем над веткой с номером коммита.
Теперь я хотел бы получить сообщение о коммите, где номер билета уже будет заполнен.
Это должно быть возможно, потому что ветка уже находится в шаблоне коммита, но в комментариях, которые удаляются git. Я пару раз просматривал документы и сеть, но, должно быть, я искал не те слова, потому что не могу их найти.
Кто-нибудь может помочь?
2 ответа
Вы, вероятно, хотите настроить prepare-commit-msg
подключите ваш локальный репозиторий. Это может выглядеть так (скажем, ветки называются "работа-на-билете-XXXX"):
#!/bin/sh
ORIG_MSG_FILE="$1"
TEMP=`mktemp /tmp/git-XXXXX`
TICKETNO=`git branch | grep '^\*' | cut -b3-`
(echo "Work on ticket #$TICKETNO"; cat "$ORIG_MSG_FILE") > "$TEMP"
cat "$TEMP" > "$ORIG_MSG_FILE"
Поместите что-то подобное (помеченный как исполняемый файл) в .git/hooks/prepare-commit-msg
, Возможно, вам придется скорректировать и уточнить это, конечно.
Похоже, вы должны быть в состоянии сделать это с помощью.git/hooks/pre-commit-msg
Простой пример этого будет:
#!/bin/sh
# $1 contains the file with the commit msg we're about to edit.
# We'll just completely clobber it for this example.
echo "Hello" > "$1"
Это заставит ваш коммит начаться с "Hello". Очевидно, что, поскольку это скрипт, вы можете поработать над магией, чтобы заполнить номер вашего билета и любую другую информацию. В каталоге.git / hooks / должен быть файл pre-commit-msg.sample, в котором указано, какие аргументы получает скрипт, если вам нужно что-то еще.