git - 如何显示 git log 和 git diff 中每个文件添加和删除的行数?
问题描述
如果我这样做git log <commit-id> --stat
或git diff
使用--stat
,我会得到类似的东西:
myproj/src/__main__.py | 1 +
myproj/{ => src}/utils.py | 0
myproj/{ => src}/web.py | 31 ++++-
3 files changed, 29 insertions(+), 3 deletions(-)
每个文件旁边的数字是:number_of_inserts + number_of_deletes
. 这不是我想要的。我想知道为每个文件添加和删除的行数(例如+28 -3
,而不是31
)。
- 我知道我可以使用,
--numstat
而不是--stat
,但--numstat
不会产生直方图。 我也知道我可以使用
diffstat
. 例如git diff <commit-id> | diffstat -f4 -C
:myproj/src/__main__.py | 1 1 0 + myproj/src/web.py | 31 28 3 ++++- 2 files changed, 29 insertions(+), 3 deletions(-)
但是在这里我丢失了有关文件移动/重命名的信息(例如
myproj/{ => src}/web.py
)。
那么如何获得类似于 的输出--stat
,但包含有关为每个文件添加的行数和删除的行数的信息?
解决方案
git log --numstat --stat --oneline
输出以下内容:
6012d9a9fa69 docs: kvm: Convert timekeeping.txt to ReST format
1 0 Documentation/virt/kvm/index.rst
128 95 Documentation/virt/kvm/{timekeeping.txt => timekeeping.rst}
Documentation/virt/kvm/index.rst | 1 +
Documentation/virt/kvm/{timekeeping.txt => timekeeping.rst} | 223 +++++++++++++++++++++++++++++++++++++++++++++----------------------------------
2 files changed, 129 insertions(+), 95 deletions(-)
推荐阅读
- mysql - 在没有多个连接、聚合或子选择的情况下匹配多行?
- php - 未定义变量:$message 通知
- powershell - 如何比较这些对象?
- excel - 基于另一个范围值的单元格值范围
- python - 如何查找一个字典键是否存在于其他字典值中。并从第一个字典中删除匹配值
- kotlin - IntelliJ 中没有运行/调试 TornadoFX 应用程序的选项
- shopify - Shopify 主题 - 主题样式设置不在 settings_schema.json 文件中?
- javascript - ReferenceError:JSEncrypt 3.0.0 之后未定义 JSENCRYPT_VERSION
- mongodb - Mongo DB 过滤其他集合而不从外部集合中投影任何字段
- kubernetes - MariaDB 服务器与 MariaDB Galera 集群 HA 复制