git log
命令用于按从近到远的顺序显示提交日志,内容包括 commit id、作者、提交时间和提交信息等。
# 列出当前分支的版本历史
$ git log
--->>
commit ab97576b6a7c74c5c6d4a88beb1c5a95fb008222 (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Wed Jun 8 15:51:51 2022 +0800
提交信息zzz
commit 843de4dea3bc9efc4d0d4ef0d216a2b9feda5e74 (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Tue Jun 7 13:09:59 2022 +0000
提交信息zzz
<<---
-
:显示最近 number 条提交记录# 列出最近 2 条提交
$ git log -2
--follow [文件路径]
:显示某个文件的版本历史,包括文件改名# 列出 src/pages/test 文件
$ git log --follow src/pages/test
--until=, --before=
:显示指定时间之前的提交# 列出 2022年6月1日 之前的提交
$ git log --until=2022-6-1
$ git log --before=2022-6-1
--since=, --after=
:显示指定时间之后的提交# 列出 2022年6月1日 之后的提交
$ git log --since=2022-6-1
$ git log --after=2022-6-1
--author=
:显示指定作者相关的提交# 列出作者为 xiaoming 的提交
$ git log --author=xiaoming
--committer=
:显示指定提交者相关的提交# 列出提交者为 xiaoming 的提交
$ git log --committer=xiaoming
-p
:按补丁格式显示每个更新之间的差异# 列出当前分支每个提交的差异
$ git log -p fa83118721af5cd1698a644f63c3c951a6361efc
--->>
commit fa81238721af5cd1698a644f63c3c951a6361efc (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Tue Jun 7 13:09:59 2022 +0000
提交信息zzz
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 26a5ebd3d0..dab1caebda 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -31,6 +31,7 @@ const DetailModal: FC<DetailModalProps> = (props) =>
);
if (!loading) {
setColor('blue')
+ setWord('okay');
}
};
<<---
--stat
:显示每次更新的文件修改统计信息--shortstat
:只显示 --stat 中最后的行数修改添加移除统计$ git log --stat
--->>
commit 28e05ebba5484b579b2c21ffcb6c57d38f0c877c (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Wed Jun 8 15:51:51 2022 +0800
提交信息zzz
src/pages/one.jsx | 3 +++
src/pages/two.jsx | 4 ++++
2 files changed, 7 insertions(+)
<<---
$ git log --shortstat
--->>
commit 28e05ebba5484b579b2c21ffcb6c57d38f0c877c (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Wed Jun 8 15:51:51 2022 +0800
提交信息zzz
2 files changed, 7 insertions(+)
<<---
--name-only
:仅在提交信息后显示已修改的文件清单$ git log --name-only
--->>
commit 28e05ebba5484b579b2c21ffcb6c57d38f0c877c (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Wed Jun 8 15:51:51 2022 +0800
提交信息zzz
src/pages/one.jsx
src/pages/two.jsx
<<---
--name-status
:显示新增、修改、删除的文件清单# 列出
$ git log -name-status
--->>
commit 28e05ebba5484b579b2c21ffcb6c57d38f0c877c (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Wed Jun 8 15:51:51 2022 +0800
提交信息zzz
M src/pages/first.tsx
A src/pages/second.tsx
D src/pages/third.tsx
R src/pages/fourth.tsx
<<---
--abbrev-commit
:仅显示 SHA-1(commit id) 的前几个字符,而非所有的 40 个字符SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
# commit id 只展示前 10 个字符
$ git log --abbrev-commit
--->>
commit e188ceafae (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: Wed Jun 15 16:35:16 2022 +0800
提交信息zzz
<<---
--relative-date
:使用较短的相对时间显示# Date 提交日期以相对时间的格式进行展示
$ git log --relative-date
--->>
commit e188ceafae (HEAD -> master, origin/master)
Author: xxx <[email protected]>
Date: 21 minutes ago
提交信息zzz
<<---
--graph
:显示 ASCII 图形表示的分支合并历史$ git log --graph
--->>
* commit e188ceafae851f7a08e1967bf7e9c0579a11c8b1 (HEAD -> master, origin/master)
| Author: xxx <[email protected]>
| Date: Wed Jun 15 16:35:16 2022 +0800
|
| 提交信息zzz
|
* commit 80c65c598cc12342191a94ed68cb59dc3feb6b06 (origin/test, test)
|\ Merge: cbe9564e16 54037d4d12
| | Author: xxx <[email protected]>
| | Date: Tue Jun 14 12:39:15 2022 +0000
| |
| | Merge branch 'one-test' into 'test'
| |
| * commit 54037d4d12344671fe8bddc9d91b3af95b014799 (origin/one-test)
| |\ Merge: 9761a714c6 5210d0e8d4
| | | Author: xxx <[email protected]>
| | | Date: Mon Jun 13 14:03:42 2022 +0000
| | |
| | | Merge branch 'two-test' into 'one-test'
| | |
......
<<---
--pretty
:使用其他格式显示历史提交信息。oneline
,short
,medium
,full
,fuller
,reference
# 1. oneline 最简单的信息
$ git log --pretty=oneline
--->>
<完整hash (commit id) > ...提交信息...
<<---
# 2. short 较少的信息
$ git log --pretty=short
--->>
commit <hash>
Author: <作者>
...提交信息...
<<---
# 3. medium
$ git log --pretty=medium
--->>
commit <hash>
Author: <作者>
Date: <修订日期>
...提交信息...
<<---
# 4. full
$ git log --pretty=full
--->>
commit <hash>
Author: <作者>
Commit: <提交人>
...提交信息...
<<---
# 5. fuller
$ git log --pretty=fuller
--->>
commit <hash>
Author: <作者>
AuthorDate: <修订时间>
Commit:<提交人>
CommitDate: <提交日期>
...提交信息...
<<---
# 6. reference
$ git log --pretty=reference
--->>
<缩写hash> (提交信息, YYYY-MM-DD)
<<---
# 列出提交对象的简短的hash(即 commitId)、作者名字、修订日期(相对时间)和提交信息,且用波浪号(~)相连
$ git log --pretty=format:"%h~%an~%ar~%s"
--->>
123450e0~xxx~58 minutes ago~提交信息2...
234560e0~xxx~6 hours ago~提交信息1...
<<---
常用格式的占位符如下:
参数 | 说明 |
---|---|
%H |
提交对象完整的 hash |
%h |
提交对象简短的 hash |
%T |
树对象的完整 hash |
%t |
树对象的简短 hash |
%P |
父对象的完整 hash |
%p |
父对象的简短 hash |
%an |
作者的名字 |
%ae |
作者的电子邮件地址 |
%ad |
作者修订日期(可以用 -date= 选项定制格式) |
%ar |
作者修订日期(相对时间) |
%cn |
提交人的名字 |
%ce |
提交人的电子邮件地址 |
%cd |
提交日期 |
%cr |
提交日期(相对时间) |
%s |
提交说明 |