git - 如何从 git log 中仅获取文件列表及其更改计数?
问题描述
我只想用它的“图表”列出所有提交中的所有文件,但我无法让它看起来干净,尤其是使用|
截断各种文件名的前导管道:
预期输出:
app/code/src/a/b/c.php | 5 ++---
app/code/src/a/b/d.php | 10 +++++-----
...
我得到这样的 git 日志:
git log --stat --pretty=short --graph --oneline
我可以像这样通过管道将此输出传递给 grep,只选择其中包含图形的线条,如下所示:
git log ... | grep -i " \| "
这很好,除非它到达格式为截断文件名和图形的日志行:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...ata.php | 239 +-
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...Api.php | 28 +-
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...ons.php | 62 -
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...ion.php | 129 -
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...ask.php | 9 -
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...ver.php | 269 +-
我不关心重复(实际上更喜欢),但filename | graph +/-
如果可能的话,我希望看到输出列表。我怎样才能做到这一点?
我猜对于大量数字,即使是符号+...-
也会被截断。如果它不可保存,那么即使是这样(或足够接近)的东西也可以:
filename | #insertions | #deletions
我不知道这是否甚至可以通过 git logs 实现,或者是否需要其他东西才能实现。
解决方案
尝试替换--stat
为--numstat
:
--numstat
类似于
--stat
,但以十进制表示法和不带缩写的路径名显示添加和删除的行数,以使其更加机器友好。对于二进制文件,输出两个-
而不是说0 0
.
或者,--stat
采用选项来调整显示的字符数:
--stat[=<width>[,<name-width>[,<count>]]]
生成差异统计。默认情况下,文件名部分将使用尽可能多的空间,其余部分用于图形部分。最大宽度默认为终端宽度,如果未连接到终端,则默认为 80 列,并且可以被覆盖
<width>
。文件名部分的宽度可以通过在逗号后
给出另一个宽度来限制。可以通过使用(影响生成统计图的所有命令)或设置(不影响 git format-patch)<name-width>
来限制图形部分的宽度。通过提供第三个参数,您可以将输出限制为第一行,如果还有更多则紧随其后。--stat-graph-width=<width>
diff.statGraphWidth=<width>
<count>
<count>
...
也可以使用 和 单独设置这些
--stat-width=<width>
参数。--stat-name-width=<name-width>
--stat-count=<count>
您可以提供非常高的宽度值,例如--stat=10000
推荐阅读
- spring - 我想通过使用 cron 表达式设置每 24 小时安排一次任务
- typescript - 是否可以将一种类型的字段混合到另一种类型中?
- reactjs - 在 setState 之后反应不更新渲染
- odoo - 父子和它们之间的过滤
- node.js - 接近 JSON 数据返回“未定义”
- c++ - 为什么我不能使用 for 循环更新像素数组?
- mysql - 在 sql 查询中使用间隔替换
- html - 第二个 tr 标签显示在第一个 tr 标签上方
- selenium-chromedriver - appium chrome borwser的文件下载权限
- r - MATLAB 的等价于 R 的 ppois(x,lambda,log.p = TRUE) 是什么?