Git diff总结一下

nxagd54h  于 2023-05-27  发布在  Git
关注(0)|答案(4)|浏览(159)

对于git pull,它显示了如下的差异摘要:

Updating 6a78751..811f788
Fast-forward
 app/Http/Controllers/SaleController.php    |   7 +-
 .../views/pages/sale/create.blade.php      | 137 +++++++++++++---
 resources/views/pages/sale/index.blade.php |   4 +-
 resources/views/pages/sale/show.blade.php  |   5 +-
 4 files changed, 123 insertions(+), 30 deletions(-)

有没有一种方法可以使用像git diff这样的命令来获得类似的输出?

ngynwnxp

ngynwnxp1#

git log --stat将显示每个文件的更改量。
git whatchanged给出了一些修改文件的细节。
git diff --stat <sha1> <sha2>给出了文件和两次提交之间的更改量。
git diff --stat <branch>与另一个分支进行比较(例如主)

e0bqpujr

e0bqpujr2#

git diff确实是您要寻找的命令。特别是你想要的

git diff --stat

其他类似的报告可使用

git diff --numstat
git diff --shortstat
git diff --dirstat
git diff --name-status
w8rqjzmb

w8rqjzmb3#

有没有一种方法可以使用git diff这样的命令来获得类似的输出?
在Git 2.17(2018年第二季度)中,实际上有一个比git diff -stat更完整的结果:
git diff”和朋友们学习了“--compact-summary”,它显示了通常与“--summary”选项一起给出的信息,与“--stat”选项的diffstat输出在同一行上(这节省了垂直空间,并将信息保存在同一位置的单个路径上)。
参见commit ddf88fa(2018年2月24日)和Nguyễn Thái Ngọc Duy ( pclouds )commit c905cbc(2018年2月1日)。
(由Junio C Hamano -- gitster --合并于commit 868f7d2,2018年3月14日)

diff:添加--compact-summary

某些信息目前显示为--summary,但当与--stat结合使用时,由于同一文件的信息位于两个位置(--stat--summary),因此有点难以读取。
最重要的是,添加或删除文件的提交会使显示行数加倍,如果您添加或删除大量文件,显示行数可能会很多。
--compact-summary--summary的大部分内容嵌入到--stat中的文件名部分和图形行之间的小空间中,例如commit 0433d53

Documentation/merge-config.txt         |  4 +
builtin/merge.c                        |  2 +
...-pull-verify-signatures.sh (new +x) | 81 ++++++++++++++
t/t7612-merge-verify-signatures.sh     | 45 ++++++++
4 files changed, 132 insertions(+)

它有助于压缩信息和节省一些文本空间。
diffstat中的新功能是:

  • 新的0644文件显示为(new)
  • 新的0755文件显示为(new +x)
  • 新的符号链接显示为(new +l)
  • 删除的文件显示为(gone)
  • 添加可执行位的模式更改显示为(mode +x)
  • 删除它的模式更改显示为(mode -x)

请注意,--compact-summary并不包含--summary提供的所有信息。重写百分比未显示,但可以稍后添加,如R50%C20%
Git 2.29(2020年第4季度)的摘要将更加简洁,因为“git diff --stat -w(man)显示了0行更改的路径,其更改仅为空格,这并不直观。
这样的路径现在从stat输出中省略。
参见commit 1cf3d5d(2020年8月20日)by Matthew Rogers ( ROGERSM94 )
(由Junio C Hamano -- gitster --合并至commit b58e47a,2020年9月3日)

diff:教导--stat忽略不感兴趣修改

签字人:马修·罗杰斯
当使用--ignore-space-change等选项时,经过修改的文件可能没有值得显示的有趣的文本更改。
在这种情况下,“git diff --stat”(man)显示0行添加和删除。教“git diff --stat“不要在输出中显示这样的路径,这样会更自然。
但是,我们不想阻止显示所有有效差异为0的文件,因为它们可能是重命名、权限更改或其他可能仍然感兴趣的类似操作的结果,因此我们特殊情况添加和删除,因为它们总是感兴趣的。

tquggr8v

tquggr8v4#

这里有一个我经常使用的命令,它向我展示了最后一次提交的细节:
git diff --stat HEAD~

相关问题