当我在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
选项包含实际的换行符?
答案 0 :(得分:10)
我找到的最接近的解决方案是使用多个-m
选项,每行一个。例如:
git tag -a v1.0.0 -m "* Change number 1" -m "* Change number 2"
-m <msg>
Use the given tag message (instead of prompting). If multiple
-m options are given, their values are concatenated as separate
paragraphs. (...)
更新:检查"Add line break to git commit -m from command line"以获取更多基于shell的解决方案。
答案 1 :(得分:4)
另一种方法是将格式化的消息放入(临时)文件中,并使用git tag -F <filename> <tag>
从该文件中读取消息。
答案 2 :(得分:2)
最好的解决方案是直接从默认代码编辑器编写提交和标记消息。
git tag -a v1.0.0
并按Enter。 不要写-m
答案 3 :(得分:0)
假设你使用的是unix shell,你的换行语法是错误的。
git tag -a v1.0.0 -m "* Change number 1
* Change number 2"
应该有用。