【问题标题】:Is there a way to prepare git tag messages?有没有办法准备 git tag 消息?
【发布时间】:2013-08-21 06:40:33
【问题描述】:

在 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 钩子不适用于标签消息。 (要么这个,要么我太笨了,不知道怎么做。)

【问题讨论】:

标签: git git-tag


【解决方案1】:

你可以这样做

message="A header line

A body line...
Other lines...

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

它将开始创建标签并打开一个编辑器。在我的情况下vim

【讨论】:

    【解决方案2】:

    您可以创建一个别名,该别名首先使用所需内容填充临时文件,然后运行 ​​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 并将其用作消息。

    【讨论】:

    • 我已经考虑过使用-F 参数的命令行解决方案,但我仍然希望能够在我的编辑器中修改消息。自动生成的消息在大多数情况下完全适合,但并非总是如此。
    • 嗯,你可以通过脚本来完成。在脚本中,使用已生成文本的 $EDITOR 打开文件,对其进行编辑、保存、退出,让脚本完成,然后使用 -F 选项执行 git tag
    猜你喜欢
    • 2012-02-04
    • 2011-06-15
    • 2012-10-18
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多