章節 10 歷史記錄

學習目標

使用 git log 來取得專案歷史紀錄的列表。

執行:

git log

您將會看到 …

輸出:

$ git log
commit 40543214b69016a1f079a0d95ff88cc7421e9b54
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Tue Mar 6 16:12:08 2012 -0500

    Added a comment

commit 1b754e9e5d528ed7a7d82c3b380fa2b2faa3ce00
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Tue Mar 6 16:12:08 2012 -0500

    Added a default value

commit 30534911b25d1fab76d13d269ff6215b4c4acddd
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Tue Mar 6 16:12:08 2012 -0500

    Using ARGV

commit 3cbf83b6899697985d2b4fcfae9b254ab6d0ddf7
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Tue Mar 6 16:12:07 2012 -0500

    First Commit

這裡列出了到目前為止我們對檔案庫送交的四次修改。

單行記錄格式01

您可以使用很多參數來呈現 log 的顯示格式。我比較喜歡單行格式:

執行:

git log --pretty=oneline

您將會看到 …

輸出:

$ git log --pretty=oneline
40543214b69016a1f079a0d95ff88cc7421e9b54 Added a comment
1b754e9e5d528ed7a7d82c3b380fa2b2faa3ce00 Added a default value
30534911b25d1fab76d13d269ff6215b4c4acddd Using ARGV
3cbf83b6899697985d2b4fcfae9b254ab6d0ddf7 First Commit

顯示格式參數 02

Git 提供很多選項讓您可以自訂顯示 log 的格式。 讓我們來操作看看下面這些參數:

git log --pretty=oneline --max-count=2
git log --pretty=oneline --since='5 minutes ago'
git log --pretty=oneline --until='5 minutes ago'
git log --pretty=oneline --author=<your name>
git log --pretty=oneline --all

使用 man git-log 可以查看更多詳細的用法。

來點不一樣的用法 03

下面這行指令是我用來檢查上一週都送交了哪些修改。如果我只想查看我自己的送交,加入 --author=jim 就行了。

git log --all --pretty=format:"%h %cd %s (%an)" --since='7 days ago'

旗艦版的顯示格式 04

在我的經驗中大部分的工作。下面這個 log 格式 是我最愛的。

執行:

git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short

看起來會像:

輸出:

$ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
* 4054321 2012-03-06 | Added a comment (HEAD, master) [Jim Weirich]
* 1b754e9 2012-03-06 | Added a default value [Jim Weirich]
* 3053491 2012-03-06 | Using ARGV [Jim Weirich]
* 3cbf83b 2012-03-06 | First Commit [Jim Weirich]

詳細的格式參數介紹:

不過,使用指令的方式查看 log ,每次要輸入的指令太長了。我們會在下一節學習 如何使用別名和 Alias 來縮短 git 指令。

其他工具 05

gitx(for Macs)和 gitk(任何作業系統)都可以用來查詢歷史紀錄。

目錄