使用帶有範圍的 git log 顯示一個分支的提交歷史記錄
-
使用
git log
和高階限制選項的分支 Git 提交歷史記錄 -
使用雙點語法
<branch1>..<branch2>
的分支 Git 提交歷史記錄 -
使用
git log
的有用快捷方式可減少輸入幾個字元以顯示分支的 Git 提交歷史記錄 -
用
log
來顯示當前分支上的提交,只看最後幾個提交的有用的選項 -
帶有插入符號運算子
^
的分支的 Git 提交歷史記錄 -
帶有
--not
選項的分支的 Git 提交歷史記錄 - 資源
git log
有許多限制選項,可以從倉庫歷史記錄中獲取提交的子集。我們演示了 git log
與 range
如何使用雙點語法、插入符 ^
運算子、--not
選項和幾個快捷方式幫助我們僅檢視分支的 git commit
歷史記錄。
Git 從這個豐富的修訂查詢系統中汲取力量,使使用者能夠管理他們的分支並與他們一起設計高效的工作流程。
使用 git log
和高階限制選項的分支 Git 提交歷史記錄
Git 倉庫可以隨著長期提交歷史而變大。在這種情況下,檢視完整歷史記錄並不是很有幫助。
git log
命令為我們提供了許多有用的選項,可以從我們需要的倉庫歷史記錄中提取提交的子集。
git log [formatting options] [limiting options]
[formatting options]
讓我們顯示有關我們提交的不同資訊,而 [limiting options]
幫助我們選擇我們想要檢視的提交。
當我們在這些 limiting options
中提供正確的範圍值時,我們可以在當前分支上 git show
提交。
使用雙點語法 <branch1>..<branch2>
的分支 Git 提交歷史記錄
雙點語法顯示了那些我們可以從 branch2
但不能從 branch1
訪問的提交。
假設我們從 master
建立一個新的 experiment_branch
。然後,我們提交到這兩個分支,但還沒有合併。
如果我們現在在 experiment_branch
上做一個簡單的 git log
,它會顯示完整的歷史記錄,包括我們在建立 experiment_branch
之前對 master
所做的提交。
這不是很有幫助的行為。一個常見的用例是當我們只想檢視 experiment_branch
上的未合併提交時。
我們使用以下命令執行此操作。
git log master..experiment_branch
所有提交都可以從 experiment_branch
訪問,但不能從 master
訪問(本質上,實驗分支上的所有未合併提交)。
我們也可以翻轉分支的順序,以檢視我們將要合併我們的 experiment_branch
的 master
的狀態。
我們的 master
看起來像這樣:
當我們這樣做時:
git log experiment_branch..master
在建立我們的實驗分支後,我們只看到 master
上的新提交。
使用 git log
的有用快捷方式可減少輸入幾個字元以顯示分支的 Git 提交歷史記錄
如果我們沒有在雙點語法中提供兩個分支中的任何一個,Git 會將它們預設為 HEAD
。
我們可以將它與 git checkout
的明智選擇一起使用,以縮短我們的 git log
命令。
首先,我們切換到我們的實驗分支。
git checkout experiment_branch
現在 HEAD
指向 experiment_branch
。
我們現在使用雙點範圍語法的簡短版本,省略右分支運算元。
git log master..
Git 將正確的分支預設為當前的 HEAD
,即我們的 experiment_branch
,並且我們僅獲得與上述相同的未合併提交的歷史記錄。
用 log
來顯示當前分支上的提交,只看最後幾個提交的有用的選項
我們的 experiment_branch
可能有很長的歷史,有許多未合併的提交。
在這種情況下,我們可能只想檢視最後幾個提交。
git log -2 master..
-2
選項僅顯示我們選擇的歷史子集中的最後 2 次提交。
帶有插入符號運算子^
的分支的 Git 提交歷史記錄
插入符運算子 ^
排除了所有可從其操作的分支訪問的提交。我們可以使用它來僅顯示當前分支的歷史記錄。
git log ^master experiment_branch
帶有 --not
選項的分支的 Git 提交歷史記錄
我們也可以在分支名稱前使用 --not
選項來獲得相同的結果。這不包括可以從該分支訪問的所有提交。
git log experiment_branch --not master
我們看到它做了同樣的事情,只在我們的 experiment_branch
上顯示未合併的提交。
資源
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
- https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch