我有一个Git标记注释:
Release 1.0
- Fixes issue 1
- Fixes issue 2
但是,如果我在脚本中使用$()
在没有TTY的情况下阅读此信息,Git会将其全部打包到一行:
MSG=$(git tag -l --format '%(contents)' release-1.00)
echo $MSG
结果:
Release 1.0 - issue 1 - issue 2
如何输出原始注释?
如果不将其放入脚本中,完全相同命令的输出就是注释的内容与创建时完全相同:
git tag -l --format '%(contents)' release-1.00
结果:
Release 1.0
- Fixes issue 1
- Fixes issue 2
仅供参考:使用git tag -n99 release-1.00
做同样的事情。我通过Git源代码搜索以尝试回答我的问题,同时发现-n99
已内部翻译为--format '$(contents:lines=99)'
答案 0 :(得分:3)
似乎回声的行为。
而不是:
MSG=$(git tag -l --format '%(contents)' release-1.00)
echo $MSG
以下将是好的:
MSG=$(git tag -l --format '%(contents)' release-1.00)
echo "$MSG"