Git命令之log日誌
阿新 • • 發佈:2018-12-16
目錄
功能
在提交了若干更新之後,又或者克隆了某個專案,想回顧下提交歷史,可以使用 git log 命令檢視。
檢視所有日誌
git log
git log 有許多選項可供特殊篩選
$ git log -p -2
-p 展開顯示每次提交的內容差異 -2 表示近兩次的更新
查詢改動某個檔案的所有日誌
git log --pretty=oneline somefile.java git log --oneline somefile.java git log --pretty=format:"%h %an,%cd : %s" somefile.java
格式化輸出
git log --pretty=format:" "
下表列出了常用的格式佔位符寫法及其代表的意義。
選項 | 說明 |
---|---|
%H | 提交物件(commit)的完整雜湊字串 |
%h | 提交物件的簡短雜湊字串 |
%T | 樹物件(tree)的完整雜湊字串 |
%t | 樹物件的簡短雜湊字串 |
%P | 父物件(parent)的完整雜湊字串 |
%p | 父物件的簡短雜湊字串 |
%an | 作者(author)的名字 |
%ae | 作者的電子郵件地址 |
%ad | 作者修訂日期(可以用 -date= 選項定製格式) |
%ar | 作者修訂日期,按多久以前的方式顯示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的電子郵件地址 |
%cd | 提交日期 |
%cr | 提交日期,按多久以前的方式顯示 |
%s | 提交說明 |
指定日期、關鍵字、作者
注意作者與提交者的關係:作者是程式的修改者,提交者是程式碼提交人。
如指定2天前,作者為“BeginMan”的提交含有關鍵字'init'的前2條記錄:
$ git log --since=2.days --author=BeginMan --grep=init -2
注意:上面選項後面的引數可以帶單雙引號,如--author=""BeginMan"""
- 僅顯示指定時間之後的提交
git log --since=2.days
- 僅顯示指定時間之前的提交
git log --until=10.days
- 僅顯示指定作者相關的提交
git log --author=BeginMan
- 僅顯示指定提交者相關的提交
git log --committer=Jack
- 僅顯示指定關鍵字的提交
git log --grep=init
顯示修改的檔案
- 僅在提交資訊後顯示已修改的檔案清單
git log --name-only
git log --name-only --oneline
- 顯示新增、修改、刪除的檔案清單
git log --name-status
git log --name-status --oneline
顯示日誌統計資訊
- 顯示每次更新的檔案修改統計資訊,也顯示更新的檔名和修改的多少。
git log --stat
git log --stat --oneline
- 只顯示 --stat 中最後的行數修改新增的統計。不顯示更新的檔名。
git log --shortstat
git log --shortstat --oneline
顯示單次日誌資訊
git show [commit id]
git show [commit id] --name-only
git show [commit id] --name-only --oneline
git show [commit id] --name-status
git show [commit id] --stat
git show [commit id] --shortstat
查詢某個字串在何時新增
git log -S"string wanted to search" --oneline
將日誌按照格式匯出到檔案中
git log --pretty=format:'%h was %an, %ar, message: %s' > log.log
以上只是簡單介紹了一些 git log 命令支援的選項。表 2-2 還列出了一些其他常用的選項及其釋義。
選項 | 說明 |
---|---|
-p | 按補丁格式顯示每個更新之間的差異。 |
--word-diff | 按 word diff 格式顯示差異。 |
--stat | 顯示每次更新的檔案修改統計資訊。 |
--shortstat | 只顯示 --stat 中最後的行數修改新增移除統計。 |
--name-only | 僅在提交資訊後顯示已修改的檔案清單。 |
--name-status | 顯示新增、修改、刪除的檔案清單。 |
--abbrev-commit | 僅顯示 SHA-1 的前幾個字元,而非所有的 40 個字元。 |
--relative-date | 使用較短的相對時間顯示(比如,“2 weeks ago”)。 |
--graph | 顯示 ASCII 圖形表示的分支合併歷史。 |
--pretty | 使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。 |
--oneline | --pretty=oneline --abbrev-commit 的簡化用法。 |