How to view git log details and stats

默认情况下,git log 命令只显示每次提交的 Author,Date 和 Message 这三个主要信息。以 React 仓库为例,git log 会显示:

$ git log
commit 9c6806964f453cb5e8a530881dcc9f33480e7388
Author: Hendrik Liebau
Date:   Wed Jul 3 13:10:23 2024 +0200
    Add regression test for #30172 (#30198)

实际工作当中我们经常需要查看提交的详细信息或统计信息,git log 有 --patch--stat 参数可以完成这些需求。

--patch 参数用来显示每次提交的详细更改信息,除三大基础信息之外会用 -+ 标识出每一个被删除和增加的行:

$ git log --patch
- function createServerComponentStack(
+ function pushServerComponentStack(

--patch 参数还有两个较短的别名分别是 -p-u, 依个人习惯用那个都可以。

--stat 参数用来显示每次提交的统计信息,除三大基础信息之外会用统计的方式显示出每次条一共更改了多少个文件,每个被更改的文件删除了多少行增加了多少行:

$ git log --stat
 packages/react-html/src/ReactHTMLClient.js                | 11 +++++++++--
 packages/react-html/src/ReactHTMLServer.js                | 54 +++++++++++++++---
 packages/react-html/src/__tests__/ReactHTMLClient-test.js | 62 +++++++++++++++++++++++++++++++
 packages/react-html/src/__tests__/ReactHTMLServer-test.js | 58 ++++++++++++++++++++++++++++
 4 files changed, 180 insertions(+), 5 deletions(-)

我平时经常会用 git log -p 命令查看拉取过来的代码到底进行了哪些更改。git log --stat 倒是用的比较少,偶尔看看某个提交的改动规模。