有没有一种方法可以准备Git标签消息?

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钩子无法用于标签消息。(或者说我太蠢了找不到如何做到这一点。)


1
注意:从Git 2.17(2018年第二季度)开始,现在git tag也有一个--edit选项。请参见https://dev59.com/QGsz5IYBdhLWcg3wj4ra#49215146 - VonC
2个回答

4
您可以创建一个别名,首先使用所需内容填充临时文件,然后使用选项-F <file>/--file=<file>运行git tag,将临时文件的内容提供给标记消息。理论上,可以这样做:
[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选项不再打开编辑器以编辑内容,它只接受提供的文件中的内容并将其用作消息。


我已经考虑过使用“-F”参数的命令行解决方案,但我仍然希望能够在我的编辑器中修改消息。自动生成的消息大多数情况下完全适合,但并非总是如此。 - igor
1
你可以通过脚本来完成。在脚本中,使用已经生成的文本打开文件并编辑,保存并退出,让脚本完成后再使用git tag命令和-F选项执行。 - mart1n

3
你可以这样做。
message="A header line

A body line...
Other lines...

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

它将开始标签创建并打开编辑器。在我的情况下,使用vimenter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接