Git
英文 ▾ 主題 ▾ 最新版本 ▾ gitk 上次更新於 2.44.0

名稱

gitk - Git 儲存庫瀏覽器

概要

gitk [<options>] [<revision-range>] [--] [<path>…​]

說明

顯示儲存庫或選定的一組提交中的變更。這包括視覺化提交圖、顯示與每個提交相關的資訊以及每個修訂版本樹中的檔案。

選項

為了控制要顯示哪些修訂版本,gitk 支援適用於 git rev-list 命令的大多數選項。它也支援一些適用於 git diff-* 命令的選項,以控制如何顯示每個提交引入的變更。最後,它支援一些 gitk 特有的選項。

由於命令列剖析器的限制,gitk 通常只理解 stuck 形式的帶有引數的選項(請參閱 gitcli[7])。

rev-list 選項和引數

本手冊頁僅描述最常用的選項。有關完整清單,請參閱 git-rev-list[1]

--all

顯示所有參考 (分支、標籤等)。

--branches[=<模式>]
--tags[=<模式>]
--remotes[=<模式>]

假裝所有分支(標籤、遠端分支,分別)在命令列上列為 <提交>。如果給定 <模式>,則將參考限制為符合給定 shell glob 的參考。如果模式缺少 ?*[,則暗示末尾有 /*

--since=<日期>

顯示比特定日期更新的提交。

--until=<日期>

顯示比特定日期更舊的提交。

--date-order

盡可能按日期排序提交。

--merge

在嘗試合併停止並發生衝突後,顯示兩個分支(即 HEAD 和 MERGE_HEAD)之間修改衝突檔案且並未存在於所有正在合併的標頭中的歷史記錄中的提交。

--left-right

標記提交可從對稱差異的哪一側到達。左側的提交會以 < 符號為前綴,而右側的提交則以 > 符號為前綴。

--full-history

使用 <路徑>…​ 過濾歷史記錄時,不會修剪某些歷史記錄。(有關更詳細的說明,請參閱 git-log[1] 中的「歷史記錄簡化」。)

--simplify-merges

--full-history 的附加選項,可從結果歷史記錄中刪除一些不必要的合併,因為沒有選定的提交會促成此合併。(有關更詳細的說明,請參閱 git-log[1] 中的「歷史記錄簡化」。)

--ancestry-path

當給定要顯示的提交範圍時(例如 commit1..commit2commit2 ^commit1),僅顯示直接存在於 commit1commit2 之間的祖先鏈上的提交,即既是 commit1 的子代,又是 commit2 的祖先的提交。(有關更詳細的說明,請參閱 git-log[1] 中的「歷史記錄簡化」。)

-L<開始>,<結束>:<檔案>
-L:<函數名稱>:<檔案>

追蹤由 <開始>,<結束> 給定的行範圍或由 <函數名稱> 的函數名稱正規表示式在 <檔案> 內的演進。你可能不會給定任何路徑規格限制符。目前這僅限於從單個修訂版本開始的走訪,也就是說,你只能給定零個或一個正修訂版本引數,並且 <開始><結束>(或 <函數名稱>)必須存在於起始修訂版本中。你可以多次指定此選項。暗示 --patch。可以使用 --no-patch 抑制修補程式輸出,但目前尚未實作其他差異格式(即 --raw--numstat--shortstat--dirstat--summary--name-only--name-status--check)。

<開始><結束> 可以採用下列其中一種形式

  • 數字

    如果 <開始><結束> 是數字,則表示絕對行號(行從 1 開始計數)。

  • /正規表示式/

    此表單將使用符合給定 POSIX 正規表示式的第一行。如果 <開始> 是正規表示式,它將從先前的 -L 範圍的結尾開始搜尋,如果沒有,則從檔案的開頭開始搜尋。如果 <開始>^/正規表示式/,它將從檔案的開頭開始搜尋。如果 <結束> 是正規表示式,它將從 <開始> 給定的行開始搜尋。

  • +位移或 -位移

    這僅對 <結束> 有效,並將指定 <開始> 給定的行之前或之後的行數。

如果在 <開始><結束> 的位置給定 :<函數名稱>,則它是表示從第一個符合 <函數名稱> 的函數名稱行到下一個函數名稱行的範圍的正規表示式。:<函數名稱> 從先前的 -L 範圍的結尾開始搜尋,如果沒有,則從檔案的開頭開始搜尋。^:<函數名稱> 從檔案的開頭開始搜尋。函數名稱的決定方式與 git diff 確定修補程式 hunk 標頭的方式相同(請參閱 gitattributes[5] 中的定義自訂 hunk 標頭)。

<修訂版本範圍>

限制要顯示的修訂版本。這可以是單個修訂版本,表示從給定的修訂版本開始往回顯示,也可以是 "<從>..<到>" 形式的範圍,表示顯示從 <從> 開始到 <到> 為止的所有修訂版本。請注意,可以套用更進階的修訂版本選擇。有關拼寫物件名稱的更完整方式清單,請參閱 gitrevisions[7]

<路徑>…​

將提交限制為觸及給定路徑中檔案的提交。請注意,為了避免與修訂版本名稱混淆,請使用 "--" 將路徑與任何先前的選項分開。

gitk 特有的選項

--argscmd=<命令>

每次 gitk 必須確定要顯示的修訂版本範圍時要執行的命令。命令預期在其標準輸出上列印要顯示的其他修訂版本清單,每行一個。如果要在重新整理之間變更要顯示的提交集合,請使用此選項,而不是明確指定 <修訂版本範圍>

--select-commit=<參考>

在載入圖表後選取指定的提交。預設行為相當於指定 --select-commit=HEAD

範例

gitk v2.6.12.. include/scsi drivers/scsi

顯示自版本 v2.6.12 以來對 include/scsi 或 drivers/scsi 子目錄中任何檔案所做的變更

gitk --since="2 weeks ago" -- gitk

顯示過去兩週內對檔案 gitk 所做的變更。「--」是必要的,以避免與名為 gitk分支混淆

gitk --max-count=100 --all -- Makefile

最多顯示對檔案 Makefile 所做的 100 個變更。不要僅在目前分支中尋找變更,而是在所有分支中尋找。

檔案

使用者配置和偏好設定儲存在

  • 如果存在 $XDG_CONFIG_HOME/git/gitk,否則

  • 如果存在 $HOME/.gitk

如果以上兩者都不存在,則會建立並預設使用 $XDG_CONFIG_HOME/git/gitk。如果未設定 $XDG_CONFIG_HOME,則在所有情況下,預設為 $HOME/.config

歷史記錄

Gitk 是第一個圖形儲存庫瀏覽器。它是用 tcl/tk 編寫的。

gitk 實際上是作為獨立專案維護的,但為了方便終端使用者,穩定版本會作為 Git 套件的一部分發布。

gitk-git/ 來自 Paul Mackerras 的 gitk 專案

git://ozlabs.org/~paulus/gitk

參見

qgit(1)

使用 Qt 以 C++ 編寫的儲存庫瀏覽器。

tig(1)

使用 Ncurses 以 C 編寫的最小儲存庫瀏覽器和 Git 工具輸出醒目標示器。

GIT

git[1] 套件的一部分

scroll-to-top