簡體中文 ▾ 主題 ▾ 最新版本 ▾ 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[=<pattern>]
--tags[=<pattern>]
--remotes[=<pattern>]

假裝所有分支(標籤、遠端分支,分別)都在命令列上列為 <commit>。如果給出 <pattern>,則將引用限制為匹配給定 shell glob 的引用。如果模式缺少 ?*[,則隱含在末尾加上 /*

--since=<date>

顯示特定日期之後的所有提交。

--until=<date>

顯示特定日期之前的所有提交。

--date-order

如果可能,按日期對提交進行排序。

--merge

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

--left-right

標記提交可從對稱差異的哪一側到達。來自左側的提交字首為 < 符號,來自右側的提交字首為 > 符號。

--full-history

使用 <path>…​ 過濾歷史記錄時,不會修剪部分歷史記錄。(有關詳細說明,請參閱 git-log[1] 中的“歷史簡化”。)

--simplify-merges

--full-history 的附加選項,用於從生成的結果歷史記錄中刪除一些不必要的合併,因為沒有選定的提交對此合併做出貢獻。(有關詳細說明,請參閱 git-log[1] 中的“歷史簡化”。)

--ancestry-path

當給定要顯示的一系列提交(例如 commit1..commit2commit2 ^commit1)時,只顯示直接存在於 commit1commit2 之間祖先鏈上的提交,即同時是 commit1 的後代和 commit2 的祖先的提交。(有關詳細說明,請參閱 git-log[1] 中的“歷史簡化”。)

-L<start>,<end>:<file>
-L:<funcname>:<file>

跟蹤由 <start>,<end> 或函式名正則表示式 <funcname> 給定的行範圍在 <file> 中的演變。您不能提供任何路徑規範限制符。目前這僅限於從單個修訂版開始的遍歷,即,您只能提供零個或一個正修訂版引數,並且 <start><end>(或 <funcname>)必須存在於起始修訂版中。您可以多次指定此選項。這隱含 --patch。補丁輸出可以使用 --no-patch 抑制,但其他差異格式(即 --raw--numstat--shortstat--dirstat--summary--name-only--name-status--check)目前尚未實現。

<start><end> 可以採用以下形式之一

  • 數字

    如果 <start><end> 是一個數字,它指定一個絕對行號(行從 1 開始計數)。

  • /正則表示式/

    此形式將使用匹配給定 POSIX 正則表示式的第一行。如果 <start> 是一個正則表示式,它將從前一個 -L 範圍的末尾開始搜尋(如果存在),否則從檔案開頭開始。如果 <start>^/regex/,它將從檔案開頭開始搜尋。如果 <end> 是一個正則表示式,它將從 <start> 給定的行開始搜尋。

  • +偏移量 或 -偏移量

    這僅對 <end> 有效,並將指定 <start> 給定行之前或之後的行數。

如果用 :<funcname> 替換 <start><end>,它是一個正則表示式,表示從匹配 <funcname> 的第一個函式名行到下一個函式名行的範圍。:<funcname> 從前一個 -L 範圍的末尾開始搜尋(如果存在),否則從檔案開頭開始。^:<funcname> 從檔案開頭開始搜尋。函式名的確定方式與 git diff 計算補丁塊頭部的方式相同(參見 gitattributes[5] 中的 定義自定義塊頭部)。

<修訂範圍>

限制要顯示的修訂。這可以是一個單獨的修訂,表示從給定修訂開始向後顯示,也可以是“<from>..<to>”形式的範圍,以顯示 <from><to> 之間的所有修訂。請注意,可以應用更高階的修訂選擇。有關拼寫物件名稱的更完整列表,請參閱 gitrevisions[7]

<路徑>…​

將提交限制為涉及給定路徑中檔案的提交。請注意,為避免與修訂名稱產生歧義,請使用“--”將路徑與任何前面的選項分開。

gitk 特有選項

--argscmd=<command>

每次 gitk 需要確定要顯示的修訂範圍時要執行的命令。該命令應在其標準輸出上列印要顯示的其他修訂列表,每行一個。如果每次重新整理要顯示的提交集可能不同,請使用此選項而不是顯式指定 <revision-range>

--select-commit=<ref>

載入圖表後選擇指定的提交。預設行為等同於指定 --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)

一個用 C++ 和 Qt 編寫的倉庫瀏覽器。

tig(1)

一個用 C 和 Ncurses 編寫的極簡倉庫瀏覽器和 Git 工具輸出高亮器。

GIT

Git[1] 套件的一部分

scroll-to-top