38

我们正在处理票证,当我们在第一行的 git commit 消息中使用票证编号时,票证将使用提交消息进行更新。

为简单起见,我们总是在具有提交号的分支上工作。

现在我想看到一条提交消息,其中已经填写了票号。

这一定是可能的,因为分支已经在提交模板中,但是在被 git 删除的注释中。我已经搜索了文档和网络几次,但我一定是在寻找错误的词,因为我找不到它。

任何人都可以帮忙吗?

4

2 回答 2

46

您可能想在本地存储库上设置一个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. 当然,您可能需要对其进行调整和详细说明。

于 2010-08-19T19:33:01.400 回答
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 告诉你如果你需要其他任何东西,脚本会接收哪些参数。

于 2010-08-19T19:30:01.157 回答