學習 Git (5) - 檢視 commit 紀錄


Posted by Calon on 2022-05-12

介紹完 Git 進行版控的完整流程後,來看怎麼檢視我們提交的 commit 紀錄。
我們如果要查看我們提交過的可以使用 git log

$ git log
commit 140cd3101a11fe081d160049744e382351f4add0 (HEAD -> master)
Author: Calon <calon@mail.com>
Date:   Thu May 12 21:42:42 2022 +0800

    新增 helloWorld.txt

根據提交時間,時間越新的資訊會在越上面,我們新增一個 new.txt 檔案後並提交 commit 後再用 git log 檢視一次:

$ touch new.txt
$ git add new.txt
$ git commit -m '新增 new.txt'
$ git log
commit e6bd8bf12d133fb321d25165ae09136c142320e6 (HEAD -> master)
Author: Calon <calon@mail.com>
Date:   Thu May 12 21:50:05 2022 +0800

    新增 new.txt

commit 140cd3101a11fe081d160049744e382351f4add0
Author: Calon <calon@mail.com>
Date:   Thu May 12 21:42:42 2022 +0800

    新增 helloWorld.txt

而我們可以從中知道:

  1. commit 的辨識碼(那一長串亂碼)
  2. commit 的作者(Author)
  3. commit 的時間(Date)
  4. commit 的內容

commit 的辨識碼,以最新的 commit 來說就是 e6bd8bf12d133fb321d25165ae09136c142320e6 這一串,是使用 SHA-1 演算法(Secure Hash Algorithm 1)根據物件種類、時間、內容等等計算出來的,重複機率超級無敵低。

git log 參數

git log 有著豐富的參數可以根據需求來顯示 commit 的內容,例如我們只是想要簡略地知道每個 commit 做了哪些事,不需要查看其他內容,這時我們可以使用 --oneline 參數:

$ git log --oneline
e6bd8bf (HEAD -> master) 新增 new.txt
140cd31 新增 helloWorld.txt

我們也可以看更詳細的內容,例如想要看修改了哪些地方:

$ git log -p
commit e6bd8bf12d133fb321d25165ae09136c142320e6
Author: Calon <calon@mail.com>
Date:   Thu May 12 21:50:05 2022 +0800

    新增 new.txt

diff --git a/new.txt b/new.txt
new file mode 100644
index 0000000..e69de29

commit 140cd3101a11fe081d160049744e382351f4add0
Author: Calon <calon@mail.com>
Date:   Thu May 12 21:42:42 2022 +0800

    新增 helloWorld.txt

diff --git a/helloWorld.txt b/helloWorld.txt
new file mode 100644
index 0000000..af5626b
--- /dev/null
+++ b/helloWorld.txt
@@ -0,0 +1 @@
+Hello, world!

或是我只想要顯示含有 new.txt 內容的 commit:

$ git log --oneline --grep="new.txt"
e6bd8bf (HEAD -> master) 新增 new.txt

當今天我們的專案越來越大,commit 也會越來越多,但是我只想顯示最新的兩筆:

$ git log -2

更多的參數選項可以參考官方文件


參考資料
  • 高見龍,《為你自己學 Git》

#Git







Related Posts

AWS Solutions Architect - Associate (SAA) 學習計畫與備考心得: Module 5

AWS Solutions Architect - Associate (SAA) 學習計畫與備考心得: Module 5

體驗最新的 JS 語法:Babel

體驗最新的 JS 語法:Babel

20210419 wk2 筆記

20210419 wk2 筆記


Comments