早上好, 我需要将 git 日志导出到 CSV 或 Excel 文件中,包括提交的注释。
我发现这篇文章给了我一些想法: 将 GIT LOG 导出到 Excel 文件中
但是我还有两个额外的要求,到目前为止我还没有找到帮助。
当然,如果我能满足第2)点,我愿意使用任何分隔符。 有人可以举一个 git log bash 命令的例子吗?
经过一些测试我可以找到解决方案。我使用了 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”更改为其他内容。 说明:
我必须将双引号的转义分两步进行,因为 GIT 无法转义注释中的字符。
将注释用双引号引起来可以在注释中出现换行符。
我希望它对社区有用。
编辑 - 我添加了一些有关此脚本用途的澄清细节。 CSV 字段周围的双引号不仅有助于保留注释中的换行符,而且对于 git 注释中的分隔符不会破坏 CSV 文件也是必要的。例如,如果分隔符为“;”,则注释中存在此类字符将破坏 CSV。将注释用双引号引起来可以防止这种情况。因此,唯一剩下的问题是双引号字符本身是否存在于注释中。建议的解决方案是将评论中的双引号替换为单引号。
注意:如果 git 注释包含脚本中使用的临时标记(“COMMENTMARK”),则 CSV 无论如何都会被破坏。所以最好是使用一个长的随机字符串作为临时标签。