【问题标题】:How to show number of lines added and deleted for every file in git log and git diff?如何显示 git log 和 git diff 中每个文件添加和删除的行数?
【发布时间】:2020-03-03 00:15:07
【问题描述】:

如果我对--stat 执行git log <commit-id> --statgit diff,我会得到类似的结果:

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 的输出,但包含有关为每个文件添加的行数和删除的行数的信息?

【问题讨论】:

  • 看起来像 this 的副本。
  • @Jay-Pi 不,这个问题是关于显示修改的行数。这个问题是关于显示每个文件的添加和删除数量。我知道这一点,因为我实际上回答了您链接到的问题。
  • 对不起,我没有仔细阅读问题。 git log --numstat --stat 怎么样?输出看起来是多余的,但它包含了直方图、每个文件的插入和删除次数,以及重命名信息。

标签: git git-diff git-log


【解决方案1】:

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(-)

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 2011-08-17
    • 2013-04-01
    • 1970-01-01
    • 2019-09-22
    • 2017-03-12
    • 2022-11-24
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多