当我在 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 1n* Change number 2"
git show v1.0.0
...
* Change number 1n* Change number 2
....
"">的字面意思是字符"\"和"n",而不是换行符。我想使用 -m
选项,以便我可以自动执行标记过程。
有没有办法使用带有-m
选项的git tag
包含实际的换行符?
我发现的最接近的解决方案是使用多个-m
选项,每行一个。例如:
git tag -a v1.0.0 -m "* Change number 1" -m "* Change number 2"
从 git-tag 手册页:
-m <msg>
Use the given tag message (instead of prompting). If multiple
-m options are given, their values are concatenated as separate
paragraphs. (...)
更新:选中"从命令行向 git commit -m 添加换行符"以获取更多基于 shell 的解决方案。
最好的解决方案是直接从默认代码编辑器编写提交和标记消息。
- 使用命令
git tag -a v1.0.0
并按回车键。不要写-m
- 它将打开您的默认代码编辑器,编写消息,保存并关闭文件。
- 命令行将恢复。
另一种选择是将格式化的消息放在(临时(文件中,并使用git tag -F <filename> <tag>
从该文件读取消息。
假设你使用的是 unix shell,你的换行符语法是错误的。
git tag -a v1.0.0 -m "* Change number 1
* Change number 2"
应该工作。