5

在 git 中添加新标签时,我想在我的 $EDITOR 启动之前自动修改默认(空)标签消息——类似于 git 允许通过prepare-commit-msg钩子准备提交消息的方式。

例如:

git tag -s v1.2.3

应该用这样的预填充内容打开我的编辑器:

Release v1.2.3:

  * Dynamically generated message 1

  * Dynamically generated message 2

Default standard text.

#
# Write a tag message
# Lines starting with '#' will be ignored

有什么办法可以做到这一点?不幸的是,该prepare-commit-msg钩子不适用于标签消息。(要么是这个,要么我太笨了,不知道该怎么做。)

4

2 回答 2

4

您可以创建一个别名,该别名首先使用所需内容填充临时文件,然后git tag使用选项-F <file>/运行以--file=<file>将临时文件的内容提供给标记消息。理论上,是这样的:

[alias]
    tag-prepare = !~/bin/prepare_file.sh && git tag --file="/home/user/temp/temp.txt"

然后你会用git tag-prepare v1.2.3.

请注意,prepare_file.sh脚本需要创建整个标签消息,因为该--file选项不再打开编辑器来编辑内容,它只需要 w/e 在提供的文件中并将其用作消息。

于 2013-08-21T08:21:25.350 回答
1

你可以做这样的事情

message="A header line

A body line...
Other lines...

Final line...
"
git tag --annotate --message "${message}" --edit 0.8.0

它将开始创建标签并打开一个编辑器。就我而言vim在此处输入图像描述

于 2019-09-30T14:18:51.280 回答