官网例子
导出日志到文件:
git log --pretty=format:"%ai,%an:%s" --since="100 day ago" >> ~\Desktop\commit.log
git log --date=iso --pretty=format:"%h,%an,%ad,%s" >> ~\Desktop\commit.csv
// 等价
--pretty=oneline // 长哈希
--pretty=format:"H %s"
--oneline // 短哈希
git log 参数配置
显示格式和内容
-p 或 --patch
显示每次提交所引入的差异
-n n为数字
显示条数
--graph
ascll码显示分支合并情况
--stat 选项 --shortstat
显示每次提交的简略统计信息。
每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结。
--pretty 格式化输出
–pretty=oneline
——或者 直接 --oneline (–pretty=oneline --abbrev-commit)
其他配置值并不常用
--pretty=format
git log --pretty=format:"%h - %an, %ar : %s"
常用的选项
选项 | 说明 |
---|---|
%H | 提交的完整哈希值 |
%h | 提交的简写哈希值 |
%T | 树的完整哈希值 |
%t | 树的简写哈希值 |
%P | 父提交的完整哈希值 |
%p | 父提交的简写哈希值 |
%an | 作者名字 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 --date=选项 来定制格式) |
%ar | 作者修订日期,按多久以前的方式 相对时间显示 |
%cn | 提交者的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期(距今多长时间) |
%s | 提交说明 |
作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。
--graph
添加了一些 ASCII 字符串来形象地展示你的分支、合并历史
--relative-date
相对当前时间显示日期
--name-only
仅在提交信息后显示已修改的文件清单
--name-status
显示新增、修改、删除的文件清单
筛选提交信息
–since --after 和 --until --before
按照时间作范围限制
--author
仅显示指定作者的提交
--committer
仅显示提交者匹配指定字符串的提交
--grep
搜索提交说明中的关键字
-S
只会显示那些添加或删除了该字符串的提交
--no-merges
不显示合并的提交
--分支名
按分支打印
git shortlog
按作者进行显示
导出的文件可再进行读取分析
实现了多少功能,解决了多少bug,处理bug事件周期(多因素)修改了哪些文件