使用帶有範圍的 git log 顯示一個分支的提交歷史記錄

Ankit Raj Goyal 2023年1月30日 2022年4月22日
  1. 使用 git log 和高階限制選項的分支 G​​it 提交歷史記錄
  2. 使用雙點語法 <branch1>..<branch2> 的分支 G​​it 提交歷史記錄
  3. 使用 git log 的有用快捷方式可減少輸入幾個字元以顯示分支的 Git 提交歷史記錄
  4. log 來顯示當前分支上的提交,只看最後幾個提交的有用的選項
  5. 帶有插入符號運算子^的分支的 Git 提交歷史記錄
  6. 帶有 --not 選項的分支的 Git 提交歷史記錄
  7. 資源
使用帶有範圍的 git log 顯示一個分支的提交歷史記錄

git log 有許多限制選項,可以從倉庫歷史記錄中獲取提交的子集。我們演示了 git logrange 如何使用雙點語法、插入符 ^ 運算子、--not 選項和幾個快捷方式幫助我們僅檢視分支的 git commit 歷史記錄。

Git 從這個豐富的修訂查詢系統中汲取力量,使使用者能夠管理他們的分支並與他們一起設計高效的工作流程。

使用 git log 和高階限制選項的分支 G​​it 提交歷史記錄

Git 倉庫可以隨著長期提交歷史而變大。在這種情況下,檢視完整歷史記錄並不是很有幫助。

git log 命令為我們提供了許多有用的選項,可以從我們需要的倉庫歷史記錄中提取提交的子集。

git log [formatting options] [limiting options]

[formatting options] 讓我們顯示有關我們提交的不同資訊,而 [limiting options] 幫助我們選擇我們想要檢視的提交。

當我們在這些 limiting options 中提供正確的範圍值時,我們可以在當前分支上 git show 提交。

使用雙點語法 <branch1>..<branch2> 的分支 G​​it 提交歷史記錄

雙點語法顯示了那些我們可以從 branch2 但不能從 branch1 訪問的提交。

假設我們從 master 建立一個新的 experiment_branch。然後,我們提交到這兩個分支,但還沒有合併。

如果我們現在在 experiment_branch 上做一個簡單的 git log,它會顯示完整的歷史記錄,包括我們在建立 experiment_branch 之前對 master 所做的提交。

實驗前在 master 上提交

這不是很有幫助的行為。一個常見的用例是當我們只想檢視 experiment_branch 上的未合併提交時。

我們使用以下命令執行此操作。

git log master..experiment_branch

所有提交都可以從 experiment_branch 訪問,但不能從 master 訪問(本質上,實驗分支上的所有未合併提交)。

分支雙點語法的 git 提交歷史記錄

我們也可以翻轉分支的順序,以檢視我們將要合併我們的 experiment_branchmaster 的狀態。

我們的 master 看起來像這樣:

實驗後掌握新的提交

當我們這樣做時:

git log experiment_branch..master

在建立我們的實驗分支後,我們只看到 master 上的新提交。

new commits master double dot

使用 git log 的有用快捷方式可減少輸入幾個字元以顯示分支的 Git 提交歷史記錄

如果我們沒有在雙點語法中提供兩個分支中的任何一個,Git 會將它們預設為 HEAD

我們可以將它與 git checkout 的明智選擇一起使用,以縮短我們的 git log 命令。

首先,我們切換到我們的實驗分支。

git checkout experiment_branch

現在 HEAD 指向 experiment_branch

我們現在使用雙點範圍語法的簡短版本,省略右分支運算元。

git log master..

Git 將正確的分支預設為當前的 HEAD,即我們的 experiment_branch,並且我們僅獲得與上述相同的未合併提交的歷史記錄。

git 雙點

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 上顯示未合併的提交。

顯示分支的提交歷史不是選項

資源

  1. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  2. https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
  3. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  4. https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
  5. https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch

相關文章 - Git Commit