设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.51.2 → 2.53.0 无变更
-
2.51.1
2025-10-15
-
2.51.0
2025-08-18
- 2.44.1 → 2.50.1 无更改
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 无更改
-
2.43.0
2023-11-20
- 2.30.1 → 2.42.4 无变更
-
2.30.0
2020-12-27
- 2.25.1 → 2.29.3 无更改
-
2.25.0
2020-01-13
- 2.22.1 → 2.24.4 无更改
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 无变更
-
2.18.0
2018-06-21
- 2.13.7 → 2.17.6 无更改
-
2.12.5
2017-09-22
- 2.11.4 无更改
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.4.12 → 2.8.6 无变更
-
2.3.10
2015-09-28
- 2.2.3 无变更
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
选项
为了控制显示哪些修订版本,gitk 支持 git rev-list 命令适用的大多数选项。它还支持一些适用于 git diff-* 命令的选项,以控制如何显示每个提交引入的更改。最后,它支持一些 gitk 特有的选项。
由于命令行解析器的限制,gitk 通常仅理解带参数的“紧凑型(stuck)”形式选项(参见 gitcli[7])。
rev-list 选项和参数
本手册页仅描述最常用的选项。完整列表请参见 git-rev-list[1]。
- --all
-
显示所有引用(分支、标签等)。
- --branches[=<模式>]
- --tags[=<模式>]
- --remotes[=<模式>]
-
假装命令行中将所有的分支(或标签、远程分支)都作为 <提交> 列出。如果给出了 <模式>,则将引用限制为匹配给定 shell 通配符的引用。如果模式中缺少 ?、* 或 [,则隐含结尾带有 /*。
- --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..commit2 或 commit2 ^commit1),仅显示直接存在于 commit1 和 commit2 之间的祖先链上的提交,即既是 commit1 的后代又是 commit2 的祖先的提交。(更详细的解释请参见 git-log[1] 中的“历史简化”部分。)
-L<起始>,<结束>:<文件>-L:<函数名>:<文件>-
追踪 <文件> 中由 <起始>
,<结束> 或函数名正则表达式 <函数名> 给出的行范围演变过程。您不能给出任何路径规范(pathspec)限制器。此选项目前仅限于从单个修订版本开始的遍历,即您只能给出零个或一个正向修订版本参数,且 <起始> 和 <结束>(或 <函数名>)必须存在于起始修订版本中。您可以多次指定此选项。隐含--patch。可以使用--no-patch抑制补丁输出,但其他 diff 格式(即--raw、--numstat、--shortstat、--dirstat、--summary、--name-only、--name-status、--check)目前尚未实现。<start> 和 <end> 可以采用以下形式之一
-
<number>
如果 <start> 或 <end> 是一个数字,它指定一个绝对行号(行从 1 开始计数)。
-
/<regex>/此形式将使用第一个匹配给定 POSIX <regex> 的行。如果 <start> 是一个正则表达式,它将从上一个
-L范围的末尾(如果存在)开始搜索,否则从文件开头开始搜索。如果 <start> 是^/<regex>/,它将从文件开头开始搜索。如果 <end> 是一个正则表达式,它将从 <start> 给定的行开始搜索。 -
+<offset> 或-<offset>这仅对 <end> 有效,并将指定 <start> 给定行之前或之后的行数。
如果用 <start> 和 <end> 的位置给出了
:<funcname>,它是一个正则表达式,表示从第一个匹配 <funcname> 的 funcname 行到下一个 funcname 行的范围。:<funcname> 从上一个-L范围的末尾(如果存在)开始搜索,否则从文件开头开始搜索。^:<funcname> 从文件开头开始搜索。函数名的确定方式与gitdiff如何处理补丁块头相同(参见 gitattributes[5] 中的“定义自定义块头”)。 -
- <修订版本范围>
-
限制要显示的修订版本。这可以是一个单一修订版本,表示显示从给定修订版本向后的历史;也可以是“<起始>..<结束>”形式的范围,显示从 <起始> 到 <结束> 之间的所有修订版本。注意,可以应用更高级的修订版本选择。有关拼写对象名称的更完整方式列表,请参见 gitrevisions[7]。
- <路径>…
-
将提交限制为涉及给定路径中文件的提交。注意,为避免与修订版本名称混淆,请使用“--”将路径与前面的任何选项隔开。
文件
用户配置和首选项存储在
-
如果存在则为
$XDG_CONFIG_HOME/git/gitk,否则 -
如果存在则为
$HOME/.gitk
如果上述两者都不存在,则默认创建并使用 $XDG_CONFIG_HOME/git/gitk。如果未设置 $XDG_CONFIG_HOME,在所有情况下默认均为 $HOME/.config。
历史
Gitk 是第一个图形化仓库浏览器,由 Paul Mackerras 使用 Tcl/Tk 编写。
gitk 实际上是作为一个独立项目维护的,但为了方便最终用户,稳定版本作为 Git 套件的一部分分发。
gitk-git/ 源自 Johannes Sixt 的 gitk 项目
https://github.com/j6t/gitk