这是一个非常简单的问题:作为一名Git新手,我想知道是否有一种方法可以将我的git日志输出到文件中,最好是以某种类型的XML,JSON或YAML的序列化格式输出。有什么建议么?Git日志输出到XML,JSON或YAML?
回答
输出到文件:
git log > filename.log
要指定格式,比如你想在同一行
git log --pretty=oneline >filename.log
,或者您想要的格式通过如sendmail程序通过电子邮件发送的一切
git log --pretty=email |email-sending-script.sh
生成JSON,YAML或XML它看起来像你需要做的事情:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
这要旨(未矿)完全格式化输出在JSON: https://gist.github.com/1306223
参见:
我做了这样的事情来创建一个最小的web api/javascript小部件,它将显示任何存储库中的最后5次提交。
如果从任何脚本语言中这样做,你真的想生成与您的引号字符不是"
其他的东西你JSON,这样就可以在提交信息逃避真实报价。 (您将有他们早晚,并为打破东西它不是很好。)
所以我结束了可怕的,但不太可能定界符^@^
和该命令行。
var cmd = 'git log -n5 --branches=* --pretty=format:\'{%n^@^hash^@^:^@^%h^@^,%n^@^author^@^:^@^%an^@^,%n^@^date^@^:^@^%ad^@^,%n^@^email^@^:^@^%aE^@^,%n^@^message^@^:^@^%s^@^,%n^@^commitDate^@^:^@^%ai^@^,%n^@^age^@^:^@^%cr^@^},\'';
然后(在node.js中)我的HTTP响应主体从通话stdout
构造git log
正是如此:
var out = ("" + stdout).replace(/"/gm, '\\"').replace(/\^@\^/gm, '"');
if (out[out.length - 1] == ',') {
out = out.substring (0, out.length - 1);
}
,结果是不错的JSON不破引号。
在提交消息中转义特殊字符的快速解决方法是在格式字符串中使用'%f'而不是'%s':'%f:清理主题行,适用于文件名' – 2013-11-03 16:02:51
FWIW,使用此项目的项目方法[在这里](https:// github。com/timboudreau/gittattle) – 2013-11-08 10:47:36
值得一提的是,您现在可以使用ES6模板字符串来执行此操作,否则无需使用^ @ ^分隔符和节点字符串替换。 – Gary 2017-12-18 15:24:48
这个脚本包git的日志,并产生JSON输出:https://github.com/paulrademacher/gitjson
看哪https://github.com/dreamyguy/gitlogg,最后git-log => JSON
解析器你永远都需要!
一些Gitlogg的特点是:
- 解析的
git log
多个存储库到一个JSON
文件。 - 引入
repository
键/值。 - 引入
files changed
,insertions
和deletions
键/值。 - 引入
impact
键/值,它表示提交的累积更改(insertions
-deletions
)。 - 通过将双引号
"
转换为单引号'
对所有允许用户输入或由用户输入创建的值(如subject
)进行消毒。 - 几乎所有的
pretty=format:
占位符都可用。 - 通过注释/取消注释可用键,可轻松包含/排除哪些键/值将被解析为
JSON
。 - 易于阅读的代码已经过全面评论。
- 控制台上的脚本执行反馈。
- 错误处理(因为需要正确设置存储库的路径)。
- 1. Git日志输出日志文件
- 2. 如何输出整个git的日志--stat到XML
- 3. 解析git日志输出,最好是xml
- 4. Git日志输出搞砸了
- 5. IntelliJ 14.1 xml日志记录输出
- 6. 如何将输出从SAS过程输出到日志或输出窗口?
- 7. 将git包创建输出重定向到日志文件
- 8. 将输入(cin)输出到日志文件(或阻塞)
- 9. AWS日志输出
- 10. GUI,BLL或DTO中的JSON/XML输出?
- 11. Scala日志记录,将控制台输出直接输出到日志文件
- 12. Git提交出现与git日志但不与git日志<filepath>
- 13. Python日志记录到标准输出和日志文件
- 14. Cron输出到日志,有没有办法使日志动态?
- 15. Perl YAML到JSON
- 16. 将日志控制台输出到日志文件Java日志程序
- 17. 输出崩溃日志到txt文件
- 18. 输出shell脚本到日志文件
- 19. 获取MSBuild输出文件到日志?
- 20. 去日志记录到多个输出
- 21. android:无法看到日志输出
- 22. 保存蟒蛇输出到日志
- 23. 输出到几个日志文件? (Unity3D)
- 24. Heroku的输出日志中
- 25. 控制日志输出
- 26. Ehcache +休眠日志输出
- 27. Supervisord /芹菜输出日志
- 28. 说明MongoDB日志输出
- 29. PM2日志输出限制
- 30. Maven:输出生成日志
这工作就像一个魅力,谢谢!对于未来的读者,以下是“格式”使用的简码的链接:http://www.kernel.org/pub/software/scm/git/docs/git-log.html – Andrew 2011-01-05 04:47:31
@andrew aww ...链接已破解... – Marty 2012-01-23 01:53:51
嗯。那么,我可以找到所有的参考指向同一个破碎的页面,所以无论谁在没有重定向的情况下取下了git文档,都感到惭愧。嘘。 – Andrew 2012-01-23 21:08:05