你不知道的Git?log還有這種用法
前言
當(dāng)你使用Git進(jìn)行版本控制時(shí),經(jīng)常需要查看提交歷史記錄。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命令來顯示一個(gè)分支圖。分支圖可以幫助你更好地理解分支之間的關(guān)系和合并歷史。
例如:
git log --graph
這將顯示一個(gè)分支圖,其中每個(gè)提交都顯示為一個(gè)節(jié)點(diǎn),不同的分支用不同的線表示。你可以在分支圖中看到合并提交和分支之間的關(guān)系。
例如:
* 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選項(xiàng)來指定輸出的格式。例如,以下命令將以一種類似于JSON的格式輸出提交記錄:
git log --pretty=format:'{%n "commit": "%H",%n "author": "%an <%ae>",%n "date": "%ad",%n "message": "%f"%n},' --no-merges這將輸出每個(gè)提交的哈希值、作者、提交日期和提交消息。
例如:
{
"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"
}你也可以使用一些預(yù)定義的格式來輸出,例如--pretty=oneline將每個(gè)提交壓縮成一行,只包含哈希值和提交消息。
例如:
a3fe1d136ab9587db19d9f8073fd491ead892f4a feat:xxxx 84738075dd00f1e0712f139c23c276b7559fd0d9 feat:xxxx a8c4b34ab5e4d844dc741e105913266502d82dcd feat:xxxx f23b4e61633033b9db5a3c87afc5f523cf5e583e feat:xxxx
查看詳細(xì)信息
默認(rèn)情況下,git log命令只顯示每個(gè)提交的基本信息。但是,你可以通過添加--stat選項(xiàng)來顯示每個(gè)提交所做的更改數(shù)量和文件列表。
例如:
git log --stat
這將顯示每個(gè)提交所做的更改數(shù)量和文件列表
例如:
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查看某個(gè)提交的詳細(xì)信息
除了git log命令,我們還可以使用git show
如果你想查看某個(gè)提交的詳細(xì)信息,可以使用git show <commit>命令。
例如:
git show 6d883ef
這將顯示提交6d883ef的詳細(xì)信息,包括提交消息、作者、提交日期和更改的文件。
查看某分支記錄
有時(shí)候你可能只想查看某個(gè)特定分支歷史記錄。這可以使用git log <branch>命令。
例如,如果你只想查看main分支的歷史記錄,你可以輸入以下命令:
git log main
顯示指定文件的提交歷史記錄
如果你只想查看某個(gè)文件的提交歷史記錄,你可以使用git log <filename>命令。
例如:
git log somefile.txt
這將顯示與該文件相關(guān)的所有提交歷史記錄。
顯示指定作者的提交歷史記錄
如果你只想查看某個(gè)作者的提交歷史記錄,你可以使用git log --author=<author>命令。例如:
例如:
git log --author="Zhangsan"
這將顯示所有由Zhangsan提交的歷史記錄。
顯示指定時(shí)間段的提交記錄
如果你指向查看某個(gè)時(shí)間范圍內(nèi)的提交歷史記錄、你可以使用git log --after,git log --before命令。
例如:
git log --after="2023-04-01" --before="2023-04-02"
這將顯示出,2023-04-01 到 2023-04-02之間的提交記錄
- --after 會(huì)篩選出指定時(shí)間之后的提交記錄
- --before 會(huì)篩選出指定時(shí)間之前的提交記錄。
還有一些快捷命令:
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" //顯示最近一個(gè)月的提交率
限制輸出的歷史記錄數(shù)量
例如,要查看最近的5個(gè)提交,你可以使用以下命令:
git log -5
搜索歷史記錄
git log命令還可以用于搜索歷史記錄。例如,如果你只想查看提交消息中包含關(guān)鍵字“bug”或“fix”的歷史記錄,可以使用以下命令:
git log --grep=bug --grep=fix
這將顯示所有提交消息中包含關(guān)鍵字“bug”或“fix”的提交記錄。
commit 27ad72addeba005d7194132789a22820d994b0a9
Author: Zhangsan <Zhangsan@example.com>
Date: Thu Apr 13 11:17:13 2023 +0800
fix:還原local環(huán)境配置
commit 8369c45344640b3b7215de957446d7ee13a48019
Author: Zhangsan <Zhangsan@example.com>
Date: Mon Apr 10 11:02:47 2023 +0800
fix:獲取文件
顯示帶有內(nèi)容變更的提交日志
如果你想查看帶有內(nèi)容變更的提交日志,可以使用git log -p,能清楚的看到每次提交的內(nèi)容變化。 非常有用的一個(gè)命令;
例如:
git log -p
這將顯示每個(gè)提交與它的父提交之間的差異。
diff --git a/xxxx.tsx b/xxxx.tsx index 7f796c934..87b365426 100644 --- a/xxx.tsx +++ b/xxx.tsx
我們也可以知道某個(gè)具體的提交的差異,可以使用git log -p <commit>命令
顯示提交的差異
如果你想查看某個(gè)提交與上一個(gè)提交之間的差異,可以使用git log -p <commit>命令。例如:
git log -p 6d883ef6d4d6fa4c2ee59f6ca8121d1a925dc429
這將顯示提交6d883ef6d4d6fa4c2ee59f6ca8121d1a925dc429與它的父提交之間的差異。
顯示當(dāng)前分支的合并情況
如果你想查看當(dāng)前分支的合并情況,可以使用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總結(jié)
以上是更多關(guān)于git log命令的使用教程、示例,希望對(duì)你有所幫助,更多關(guān)于Git log用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于javascript sort()排序你可能忽略的一點(diǎn)理解
最近在研究Javascript發(fā)現(xiàn)了其中一些之前忽略的問題,所以想著總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于javascript sort()排序你可能忽略的一點(diǎn)理解,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
在B/S開發(fā)中經(jīng)常用到的JavaScript技術(shù)
javascript運(yùn)用中,經(jīng)常用到的代碼,建議每段代碼都要看下,注意本文有三頁,仔細(xì)看玩,逐個(gè)研究透徹,那么網(wǎng)頁中常見的問題,你也就熟悉掌握了2008-05-05
JavaScript中isPrototypeOf函數(shù)作用和使用實(shí)例
這篇文章主要介紹了JavaScript中isPrototypeOf函數(shù)作用和使用實(shí)例,本文講解了它的作用和使用方法以及使用實(shí)例,需要的朋友可以參考下2015-06-06
詳解JavaScript對(duì)數(shù)組操作(添加/刪除/截取/排序/倒序)
這篇文章主要介紹了JavaScript對(duì)數(shù)組操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Bootstrap輪播插件中圖片變形的終極解決方案 使用jqthumb.js
這篇文章主要介紹了Bootstrap輪播插件中圖片變形的終極解決方案,使用jqthumb.js,感興趣的小伙伴們可以參考一下2016-07-07
Javascript排序算法之計(jì)數(shù)排序的實(shí)例
計(jì)數(shù)排序是一種高效的線性排序,它通過計(jì)算一個(gè)集合中元素楚翔的次數(shù)來確定集合如何排列,計(jì)數(shù)排序不需要進(jìn)行數(shù)據(jù)的比較,所有他的運(yùn)行效率前面介紹的都高2014-04-04

