我受精了,Git log竟然还有这种用法!
前言
当你使用Git进行版本控制时,经常需要查看提交历史记录。Git提供了git log
命令来查看版本历史记录。
在本文中,我们将介绍如何使用git log命令来查看Git提交历史记录。
查看提交历史记录
通过在命令行中输入以下命令来查看提交历史记录:
git log
这将显示最新的提交历史记录,包括提交ID、作者、提交日期、提交消息等。例如:
commit 6d883ef6d4d6fa4c2ee59f6ca8121d1a925dc429
Author: Zhangsan <Zhangsan@example.com>
Date: Sat Apr 24 22:21:48 2023 -0500
Added new feature
commit b3f3f066e75a7d3352898c9eddf23baa7265f5b5
Author: Zhangsan <Zhangsan@example.com>
Date: Sat Apr 24 17:32:16 2023 -0500
Fixed bug
commit 0498b3d96b2732e36e7d41501274c327a38188aa
Author: Zhangsan <Zhangsan@example.com>
Date: Fri Apr 23 14:01:11 2023 -0500
Updated documentation
显示分支图
如果你想查看分支的提交历史记录,你可以使用git log --graph
命令来显示一个分支图。分支图可以帮助你更好地理解分支之间的关系和合并历史。
例如:
git log --graph
这将显示一个分支图,其中每个提交都显示为一个节点,不同的分支用不同的线表示。你可以在分支图中看到合并提交和分支之间的关系。
例如:
* commit da32d1d7e7f22ec59330e6b8c51def819b951aec
| Author: Zhangsan <Zhangsan@example.com>
| Date: Wed Apr 12 15:28:40 2023 +0800
|
| feat:xxx
|
* commit 8fdc0a9838d45d9e027740e7a448822bb8431969
|\ Merge: e22ce87ae d80ce707b
| | Author: Zhangsan <Zhangsan@example.com>
| | Date: Wed Apr 12 13:08:17 2023 +0800
| |
| | Merge branch 'xxx' into xxx
| |
| * commit d80ce707b72e1231c18a4843e62175a7a430e3c3
| | Author: Zhangsan <Zhangsan@example.com>
| | Date: Tue Apr 11 19:36:48 2023 +0800
| |
| | xxxx
| |
格式化输出
git log
命令还支持格式化输出,你可以使用--pretty
选项来指定输出的格式。例如,以下命令将以一种类似于JSON的格式输出提交记录:
git log --pretty=format:'{%n "commit": "%H",%n "author": "%an <%ae>",%n "date": "%ad",%n "message": "%f"%n},' --no-merges
这将输出每个提交的哈希值、作者、提交日期和提交消息。
例如:
{
"commit": "a8c4b34ab5e4d844dc741e105913266502d82dcd",
"author": "Zhangsan <Zhangsan@example.com>",
"date": "Sun Apr 16 16:32:20 2023 +0800",
"message": "feat-resize"
},
{
"commit": "f23b4e61633033b9db5a3c87afc5f523cf5e583e",
"author": "Zhangsan <Zhangsan@example.com>",
"date": "Sat Apr 15 15:32:25 2023 +0800",
"message": "feat"
}
你也可以使用一些预定义的格式来输出,例如--pretty=oneline
将每个提交压缩成一行,只包含哈希值和提交消息。
例如:
a3fe1d136ab9587db19d9f8073fd491ead892f4a feat:xxxx
84738075dd00f1e0712f139c23c276b7559fd0d9 feat:xxxx
a8c4b34ab5e4d844dc741e105913266502d82dcd feat:xxxx
f23b4e61633033b9db5a3c87afc5f523cf5e583e feat:xxxx
查看详细信息
默认情况下,git log命令只显示每个提交的基本信息。但是,你可以通过添加--stat选项来显示每个提交所做的更改数量和文件列表。
例如:
git log --stat
这将显示每个提交所做的更改数量和文件列表
例如:
commit 6d883ef6d4d6fa4c2ee59f6ca8121d1a925dc429
Author: Zhangsan <Zhangsan@example.com>
Date: Sat Apr 24 22:21:48 2023 -0500
Added new feature
somefile.txt | 1 +
1 file changed, 1 insertion(+)
commit b3f3f066e75a7d3352898c9eddf23baa7265f5b5
Author: Zhangsan <Zhangsan@example.com>
Date: Sat Apr 24 17:32:16 2023 -0500
Fixed bug
somefile.txt | 1 -
1 file changed, 1 deletion(-)
commit 049
查看某个提交的详细信息
除了git log
命令,我们还可以使用git show
如果你想查看某个提交的详细信息,可以使用git show <commit>
命令。
例如:
git show 6d883ef
这将显示提交6d883ef
的详细信息,包括提交消息、作者、提交日期和更改的文件。
查看某分支记录
有时候你可能只想查看某个特定分支历史记录。这可以使用git log <branch>
命令。
例如,如果你只想查看main分支的历史记录,你可以输入以下命令:
git log main
显示指定文件的提交历史记录
如果你只想查看某个文件的提交历史记录,你可以使用git log <filename>
命令。
例如:
git log somefile.txt
这将显示与该文件相关的所有提交历史记录。
显示指定作者的提交历史记录
如果你只想查看某个作者的提交历史记录,你可以使用git log --author=<author>
命令。例如:
例如:
git log --author="Zhangsan"
这将显示所有由Zhangsan
提交的历史记录。
显示指定时间段的提交记录
如果你指向查看某个时间范围内的提交历史记录、你可以使用git log --after
,git log --before
命令。
例如:
git log --after="2023-04-01" --before="2023-04-02"
这将显示出,2023-04-01 到 2023-04-02之间的提交记录
- --after 会筛选出指定时间之后的提交记录
- --before 会筛选出指定时间之前的提交记录。
还有一些快捷命令:
git log --after="yesterday" //显示昨天的记录
git log --after="today" //显示今天的
git log --before="10 day ago" // 显示10天前的提交记录
git log --after="1 week ago" //显示最近一周的提交录
git log --after="1 month ago" //显示最近一个月的提交率
限制输出的历史记录数量
例如,要查看最近的5
个提交,你可以使用以下命令:
git log -5
搜索历史记录
git log
命令还可以用于搜索历史记录。例如,如果你只想查看提交消息中包含关键字“bug”或“fix”的历史记录,可以使用以下命令:
git log --grep=bug --grep=fix
这将显示所有提交消息中包含关键字“bug”或“fix”的提交记录。
commit 27ad72addeba005d7194132789a22820d994b0a9
Author: Zhangsan <Zhangsan@example.com>
Date: Thu Apr 13 11:17:13 2023 +0800
fix:还原local环境配置
commit 8369c45344640b3b7215de957446d7ee13a48019
Author: Zhangsan <Zhangsan@example.com>
Date: Mon Apr 10 11:02:47 2023 +0800
fix:获取文件
显示带有内容变更的提交日志
如果你想查看带有内容变更的提交日志,可以使用git log -p
,能清楚的看到每次提交的内容变化。
非常有用的一个命令;
例如:
git log -p
这将显示每个提交与它的父提交之间的差异。
diff --git a/xxxx.tsx b/xxxx.tsx
index 7f796c934..87b365426 100644
--- a/xxx.tsx
+++ b/xxx.tsx
我们也可以知道某个具体的提交的差异,可以使用git log -p <commit>
命令
显示提交的差异
如果你想查看某个提交与上一个提交之间的差异,可以使用git log -p <commit>
命令。例如:
git log -p 6d883ef6d4d6fa4c2ee59f6ca8121d1a925dc429
这将显示提交6d883ef6d4d6fa4c2ee59f6ca8121d1a925dc429
与它的父提交之间的差异。
显示当前分支的合并情况
如果你想查看当前分支的合并情况,可以使用git log --merges
命令。例如:
git log --merges
commit 2f3f4c45a7be3509fff6496c9de6d13ef0964c9d
Merge: 8369c4534 4103a08bf
Author: xxx <xxx@xx.com>
Date: Mon Apr 10 11:03:55 2023 +0800
Merge branch 'dev/feature1' into dev/dev
commit 14b40421ef54c875b8f8f0cfc297bcdc3960b9be
Merge: 30e36edbb 48bb05ede
Author: xxx <xxx@xx.com>
Date: Mon Apr 10 00:34:09 2023 +0800
Merge branch 'dev/feature1' into dev/dev
总结
以上是更多关于git log命令的使用教程、示例,希望对你有所帮助。
链接:https://juejin.cn/post/7225902885544165436
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。