git - 我可以为 git 使用脚本化提交模板吗?

标签 git git-commit pre-commit-hook

我们正在处理工单,当我们在第一行的 git 提交消息中使用工单号时,工单会使用提交消息进行更新。

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

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

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

有人能帮忙吗?

最佳答案

您可能想在本地存储库上设置一个prepare-commit-msg Hook 。它可能看起来像这样(假设分支被命名为“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 中放入类似的东西(标记为可执行文件)。当然,您可能需要对其进行调整和详细说明。

关于git - 我可以为 git 使用脚本化提交模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3525341/

相关文章:

linux - 致命: could not read Username for 'https://gitlab.com' : No such device or address on gitlab

git - 如何撤消 git commit --amend

git - 与手动运行相比,使用 echo -n 的预提交 Hook 在 git 运行时的行为有所不同

bash - 如何仅获取要在预提交 Hook 中处理的文件的更改部分?

git 选择性地从文件中恢复本地更改

ruby-on-rails - Capistrano 3 提取命令行参数

xcode - 在 Xcode 安装的 git 中禁用 osxkeychain 凭证助手

git - 我如何只提交一些文件?

linux - Git 每日自动提交

java - svn预提交钩子(Hook)检查java源