将GIT LOG导出到Excel文件中

mil*_*gar 11 git logging

我已经调查了论坛,但没有运气.

要求:

运行GIT LOG(格式)命令并将结果写入Excel文件.

我见过一些例子,其中使用GIT Log命令,数据可以写入CSV,但格式化是两倍的努力.

任何实用程序或方法都会有所帮助.

谢谢米琳德

jok*_*ker 26

Git使您可以控制如何使用pretty选项格式化日志输出.看一下这个:

git log --pretty=format:%h,%an,%ae,%s
Run Code Online (Sandbox Code Playgroud)

这将以(hash [缩写],作者姓名,作者电子邮件,主题)的格式打印日志.

要查看格式选项的完整列表:

git help log
Run Code Online (Sandbox Code Playgroud)

然后向下滚动,直到看到格式选项列表.

要重定向输出,请使用>重定向运算符,如下所示:

git log --pretty=format:%h,%an,%ae,%s > /path/to/file.csv
Run Code Online (Sandbox Code Playgroud)

  • 这个答案不会逃避输出。以下是如何使用空字符 `(%x00)` 来分隔列并转义内容: `git log --format='%h%x00%an%x00%ae%x00%s' | perl -pe 'chomp; $_ = join(",", map { s/"/""/g; "\"$_\"" } split /\0/) . "\n"'` (10认同)
  • 您还可以使用“%ad”与“--date=short”组合来添加日期列。 (2认同)
  • 我发现我还可以直接以格式引用这些值 - `git log --pretty=format:'"%h","%ad","%an","%s"' --date=iso-strict ` - 这样当备忘录中有逗号时就很清楚 (2认同)

avs*_*099 18

我的 2 美分,以防有人在看:

echo "commit id,author,date,comment,changed files,lines added,lines deleted" > res.csv 
git log --since='last year'  --date=local --all --pretty="%x40%h%x2C%an%x2C%ad%x2C%x22%s%x22%x2C" --shortstat | tr "\n" " " | tr "@" "\n" >> res.csv
sed -i 's/ files changed//g' res.csv
sed -i 's/ file changed//g' res.csv
sed -i 's/ insertions(+)//g' res.csv
sed -i 's/ insertion(+)//g' res.csv
sed -i 's/ deletions(-)//g' res.csv
sed -i 's/ deletion(-)//g' res.csv
Run Code Online (Sandbox Code Playgroud)

并将其保存到git-logs-into-csv.sh文件中,或者只是复制/粘贴到控制台中。

我认为这是相对不言自明的,但以防万一:

  • --all 从所有分支获取日志
  • --since 限制我们想要查看的提交数量
  • --shortstat - 了解提交中做了什么