设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.51.2 → 2.52.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[=<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..commit2 或 commit2 ^commit1),仅显示存在于 commit1 和 commit2 之间的祖先链上的提交,即既是 commit1 的后代,又是 commit2 的祖先的提交。(有关更详细的解释,请参见 git-log[1] 中的“历史简化”)。
-L<start>,<end>:<file>-L:<funcname>:<file>-
跟踪 <file> 中给定的行范围 <start>
,<end> 或函数名正则表达式 <funcname> 的演变。您不能提供任何路径名限制器。目前这仅限于从单个修订版开始的遍历,即您只能提供零个或一个正面修订版参数,并且 <start> 和 <end>(或 <funcname>)必须存在于起始修订版中。您可以多次指定此选项。隐含--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] 中的“定义自定义块头”)。 -
- <revision range>
-
限制要显示的修订版。这可以是单个修订版,表示从给定修订版开始向后显示,或者可以是一个形式为“<from>..<to>”的范围,表示显示 <from> 和 <to> 之间的所有修订版。请注意,可以应用更高级的修订版选择。有关指定对象名称的更完整列表,请参阅 gitrevisions[7]。
- <path>…
-
将提交限制为修改给定路径中文件的提交。请注意,为了避免与修订版名称的歧义,请使用 "--" 来将路径与任何前面的选项分隔开。
文件
用户配置和偏好设置存储在
-
$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