我们正在处理故障单,当我们在第一行的git commit消息中使用故障单编号时,将使用提交消息更新故障单。
为简单起见,我们总是使用提交号在分支上工作。
现在,我希望收到一条提交消息,其中已经填写了票号。
必须是可能的,因为分支已经在提交模板中,但是在由git删除的注释中。我曾经几次搜索过文档和网页,但我一定在找错字,因为我找不到它。
有人可以帮忙吗?
答案 0 :(得分:38)
您可能希望在本地存储库中设置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
中添加类似的内容(标记为可执行文件)。你当然可能需要调整和详细说明。
答案 1 :(得分:5)
看起来你应该可以通过使用.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,告诉你如果你还需要其他东西,脚本会收到哪些args。