如果没有tty,如何阻止git打包标记注释?

时间:2018-04-30 02:47:09

标签: git

我有一个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)'

1 个答案:

答案 0 :(得分:3)

似乎回声的行为。

而不是:

MSG=$(git tag -l --format '%(contents)' release-1.00)
echo $MSG

以下将是好的:

MSG=$(git tag -l --format '%(contents)' release-1.00)
echo "$MSG"