Могу ли я использовать сценарий коммитов для git? - PullRequest
30 голосов
/ 19 августа 2010

Мы работаем над тикетами, и когда мы используем номер тикета в сообщении git commit в первой строке, то тикет обновляется сообщением коммита.

Для простоты мы всегда работаем над веткой с номером коммита.

Теперь я хотел бы получить сообщение о коммите, где номер билета уже будет заполнен.

Это должно быть возможно, потому что ветвь уже есть в шаблоне коммита, но в комментариях, которые удаляются git. Я пару раз просматривал документы и сеть, но, должно быть, я искал не те слова, потому что не могу их найти.

Может кто-нибудь помочь?

Ответы [ 2 ]

39 голосов
/ 19 августа 2010

Возможно, вы хотите установить 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. Возможно, вам придется скорректировать и уточнить это, конечно.

5 голосов
/ 19 августа 2010

Похоже, вы должны быть в состоянии сделать это, используя .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, в котором указано, какие аргументы получает скрипт, если вам нужно что-то еще.

...