如何在git标签消息中包含换行符

当我在git中标记版本化代码时,我喜欢在标签消息中使用项目符号点。

这可以通过带注释的标签轻松完成:

git tag -a v1.0.0

* Change number 1
* Change number 2
#
# Write a tag message
#

但是,如果我使用-m选项尝试相同的标记,则标记消息不是我所期望的:

git tag -a v1.0.0 -m "* Change number 1\n* Change number 2"

git show v1.0.0

...

* Change number 1\n* Change number 2
....

'\ n'被解释为字符'\'和'n'而不是换行符。我想使用 -m 选项,这样我就可以自动执行标记过程。

使用 git tag-m 选项是否有任何方法可以包含实际的换行符?

6
额外 编辑
意见: 1

3 答案

我找到的最接近的解决方案是使用多个 -m 选项,每行一个。例如:

git tag -a v1.0.0 -m "* Change number 1" -m "* Change number 2"

来自 git-tag手册页

-m 
   Use the given tag message (instead of prompting). If multiple
   -m options are given, their values are concatenated as separate
   paragraphs. (...)

UPDATE: Check "Add line break to git commit -m from command line" for more shell-based solutions.

9
额外
我的命令: git tag -a v1.1.0 -m“+为查找和替换控制台中的正则表达式添加了高亮语法,”-m“+添加了有关为Windows 10用户定制一些图形参数的说明。”结果 。我做错了什么?谢谢。
额外 作者 Саша Черных,
帮助我: tag -a st3-1.1.0 -m“版本1.1.0”-m“+为查找和替换控制台中的正则表达式添加了高亮语法,”-m“+添加了有关自定义某些图形的说明Windows 10用户的参数“。结果 。谢谢。
额外 作者 Саша Черных,
好答案。哦,可以在手册页找到隐藏的宝藏。谢谢,阿齐兹!
额外 作者 Eric Peterson,
这将在消息之间添加额外的换行符,这可能并不理想。
额外 作者 Max Nanasy,

Another alternative would be to put the formatted message in a (temporary) file and use git tag -F to read the message from that file.

4
额外

假设你使用的是unix shell,你的newline语法是错误的。

git tag -a v1.0.0 -m "* Change number 1
* Change number 2"

应该管用。

0
额外