将 git log 导出为 Excel 或 CSV 文件,保存原始评论格式

问题描述 投票:0回答:1

早上好, 我需要将 git 日志导出到 CSV 或 Excel 文件中,包括提交的注释。

我发现这篇文章给了我一些想法: 将 GIT LOG 导出到 Excel 文件中

但是我还有两个额外的要求,到目前为止我还没有找到帮助。

  1. 我想保留评论的原始文本格式,包括换行
  2. 我想转义 CSV 分隔符,以防它包含在注释中。

当然,如果我能满足第2)点,我愿意使用任何分隔符。 有人可以举一个 git log bash 命令的例子吗?

git csv logging escaping
1个回答
2
投票

经过一些测试我可以找到解决方案。我使用了 git bash 脚本。

echo "hash;user;date;comment" > gitlog.csv
git log origin/master --date=local --pretty="%h%x3B%an%x3B%ad%x3BCOMMENTMARK%BCOMMENTMARK" | tr '"' "'" >> gitlog.csv
sed -i 's/COMMENTMARK/\"/g' gitlog.csv

如果需要,可以将“origin/master”更改为其他内容。 说明:

  • 我已将每个评论包装在字符串标记(COMMENTMARK)中
  • 我已将双引号替换为单引号
  • 我已将注释标记替换为双引号

我必须将双引号的转义分两步进行,因为 GIT 无法转义注释中的字符。

将注释用双引号引起来可以在注释中出现换行符。

我希望它对社区有用。


编辑 - 我添加了一些有关此脚本用途的澄清细节。 CSV 字段周围的双引号不仅有助于保留注释中的换行符,而且对于 git 注释中的分隔符不会破坏 CSV 文件也是必要的。例如,如果分隔符为“;”,则注释中存在此类字符将破坏 CSV。将注释用双引号引起来可以防止这种情况。因此,唯一剩下的问题是双引号字符本身是否存在于注释中。建议的解决方案是将评论中的双引号替换为单引号。

注意:如果 git 注释包含脚本中使用的临时标记(“COMMENTMARK”),则 CSV 无论如何都会被破坏。所以最好是使用一个长的随机字符串作为临时标签。

© www.soinside.com 2019 - 2024. All rights reserved.