命令 | 說明 |
---|---|
git log | 查看歷史提交記錄 |
git blame (file) | 以列表形式查看指定文件的歷史修改記錄 |
git log
-
在使用 Git 提交了若干更新之后,又或者克隆了某個項目,想回顧下提交歷史,我們可以使用
git log
命令查看。 -
git log
命令用于查看 Git 倉庫中提交歷史記錄。 -
git log
顯示了從最新提交到最早提交的所有提交信息,包括提交的哈希值、作者、提交日期和提交消息等。 -
git log 命令的基本語法:
git log [選項] [分支名/提交哈希]
-
常用的選項包括:
-
-p
:顯示提交的補丁(具體更改內容)。 -
--oneline
:以簡潔的一行格式顯示提交信息。 -
--graph
:以圖形化方式顯示分支和合并歷史。 -
--decorate
:顯示分支和標簽指向的提交。 -
--author=<作者>
:只顯示特定作者的提交。 -
--since=<時間>
:只顯示指定時間之后的提交。 -
--until=<時間>
:只顯示指定時間之前的提交。 -
--grep=<模式>
:只顯示包含指定模式的提交消息。 -
--no-merges
:不顯示合并提交。 -
--stat
:顯示簡略統計信息,包括修改的文件和行數。 -
--abbrev-commit
:使用短提交哈希值。 -
--pretty=<格式>
:使用自定義的提交信息顯示格式。 -
可以用 –reverse 參數來逆向顯示所有日志,如
git log --reverse --oneline
-
指定日期,可以執行幾個選項:–since 和 --before,但是你也可以用 --until 和 --after。如
git log --oneline --before={3.weeks.ago} --after={2024-02-14} --no-merges
-
$ git log --pretty=oneline
b65a6a5df0d0e5ddf4da1cccc641927eb3224b60 (HEAD -> master) Merge branch 'dev'
3f3bdf2adbefaa2595eb77cc0aa101ce925b3c17 修改代碼
6b789116122f54f78987de07b339e13f6ce4a760 changed the text.txt
405fb585eb82853f878fa3381f2decd2572f1dc8 add text.txt
你看到的一大串類似b65a6a5...
的是commit id
(版本號),Git的commit id
不是1,2,3……遞增的數字,而是一個SHA1計算出來的一個非常大的數字,用十六進制表示,而且你看到的commit id
和我的肯定不一樣,以你自己的為準。
那為什么要這樣做呢?因為Git是分布式的版本控制系統,后面我們還要研究多人在同一個版本庫里工作,如果大家都用1,2,3……作為版本號,那肯定就沖突了。
更多 git log 命令可查看 http://git-scm.com/docs/git-log
git blame
-
git blame
命令用于逐行顯示指定文件的每一行代碼是由誰在什么時候引入或修改的。 -
strong>git blame
可以追蹤文件中每一行的變更歷史,包括作者、提交哈希、提交日期和提交消息等信息。 -
如果要查看指定文件的修改記錄可以使用 git blame 命令,格式如下:
git blame [選項] <文件路徑>
- 常用的選項包括:
-L <起始行號>,<結束行號>
:只顯示指定行號范圍內的代碼注釋。-C
:對于重命名或拷貝的代碼行,也進行代碼行溯源。-M
:對于移動的代碼行,也進行代碼行溯源。-C -C
或-M -M
:對于較多改動的代碼行,進行更進一步的溯源。--show-stats
:顯示包含每個作者的行數統計信息。
顯示文件每一行的代碼注釋和相關信息:
git blame <文件路徑>
只顯示指定行號范圍內的代碼注釋:
git blame -L <起始行號>,<結束行號> <文件路徑>
對于重命名或拷貝的代碼行進行溯源:
git blame -C <文件路徑>
對于移動的代碼行進行溯源:
git blame -M <文件路徑>
顯示行數統計信息:
git blame --show-stats <文件路徑>
git blame
命令是以列表形式顯示修改記錄,如下實例:
$ git blame text.txt
6b789116 (keduo 2024-02-24 21:06:18 +0800 1) 歡迎關注CSDN@keduo
3f3bdf2a (keduo 2024-02-24 21:23:53 +0800 2) CSDN@keduo感謝你的關注