Могу ли я использовать шаблон сценария фиксации для git?
Мы работаем над билетами, и когда мы используем номер билета в сообщении git commit в первой строке, тогда билет обновляется сообщением фиксации.
Чтобы сделать все просто, мы всегда работаем с веткой с номером фиксации.
Теперь я хотел бы получить сообщение о фиксации, в котором номер билета уже будет заполнен.
Это должно быть возможно, потому что ветвь уже находится в шаблоне фиксации, но в комментариях, которые удаляются с помощью git. Я несколько раз просматривал документы и "сеть", но я должен искать неправильные слова, потому что я не могу их найти.
Может ли кто-нибудь помочь?
Ответы
Ответ 1
Вероятно, вы хотите настроить крючок prepare-commit-msg
в локальном репозитории. Это может выглядеть так (скажем, что ветки называются "work-on-ticket-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
. Возможно, вам, конечно, придется отрегулировать и уточнить его.
Ответ 2
Похоже, вы должны это сделать, используя .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". Очевидно, так как это script, вы можете придумать магию, чтобы заполнить свой номер билета и любую другую информацию.
Должен быть файл pre-commit-msg.sample в каталоге .git/hooks/, сообщающий вам, какие аргументы получает script, если вам нужно что-то еще.