【问题标题】:Export GIT LOG into an Excel file将 GIT LOG 导出为 Excel 文件
【发布时间】:2016-08-31 15:13:57
【问题描述】:

我已经查看了论坛,但没有运气。

要求:

运行 GIT LOG (format) 命令并将结果写入 Excel 文件。

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

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

谢谢 温和的

【问题讨论】:

  • Stack Overflow 不是论坛。就目前而言,您的问题要么过于宽泛,要么与要求外部库/工具无关。
  • 可以做类似git log --oneline | tr "\r" " > ~/gitlog.csv的事情
  • 这对我来说似乎并不宽泛或离题。它询问如何做一些非常具体的事情,正如得分最高的答案所示,它可以用 git-log 来完成。

标签: git logging


【解决方案1】:

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

git log --pretty=format:%h,%an,%ae,%s

这会以(散列[缩写]、作者姓名、作者电子邮件、主题)的格式打印日志。

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

git help log

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

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

git log --pretty=format:%h,%an,%ae,%s > /path/to/file.csv

【讨论】:

  • 很棒的提示,我现在每周使用git log --no-merges --since='mm-dd-yyyy' --pretty=format:%h,%an,%ae,%s > c:\dev\history.csv
  • 这个答案不会转义输出。以下是使用空字符 (%x00) 分隔列和转义内容的方法:git log --format='%h%x00%an%x00%ae%x00%s' | perl -pe 'chomp; $_ = join(",", map { s/"/""/g; "\"$_\"" } split /\0/) . "\n"'
  • 您也可以使用%ad结合--date=short添加日期列。
  • 我发现我也可以直接以 git log --pretty=format:'"%h","%ad","%an","%s"' --date=iso-strict 的格式引用值 - 所以当备忘录中有逗号时很清楚
【解决方案2】:

如果有人在看,我的 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

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

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

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

【讨论】:

  • 作为一个相当痴迷于定量数据的人,谢谢!我试过了,这看起来很酷!
猜你喜欢
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2014-04-09
相关资源
最近更新 更多