设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
打补丁
调试
邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.44.1 → 2.49.0 无更改
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.6 无更改
-
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>
-
跟踪由 *<start>,<end>* 给定的行范围,或由函数名称正则表达式 *<funcname>* 给定的行范围在 *<file>* 中的演变。 你可能不会给出任何路径说明符限制器。 这目前仅限于从单个修订版本开始的遍历,即,你只能给出零个或一个正修订版本参数,并且 *<start>* 和 *<end>*(或 *<funcname>*)必须存在于起始修订版本中。 你可以多次指定此选项。 隐含
--patch
。 可以使用--no-patch
抑制补丁输出,但其他差异格式(即--raw
、--numstat
、--shortstat
、--dirstat
、--summary
、--name-only
、--name-status
、--check
)目前尚未实现。*<start>* 和 *<end>* 可以采用以下形式之一
-
number
如果 *<start>* 或 *<end>* 是数字,则它指定一个绝对行号(行从 1 开始计数)。
-
/regex/
此形式将使用与给定的 POSIX 正则表达式匹配的第一行。 如果 *<start>* 是一个正则表达式,它将从上一个
-L
范围的末尾开始搜索,如果没有任何,则从文件的开头开始搜索。 如果 *<start>* 是^/regex/
,它将从文件的开头开始搜索。 如果 *<end>* 是一个正则表达式,它将从 *<start>* 给定的行开始搜索。 -
+offset or -offset
这仅对 *<end>* 有效,并将指定 *<start>* 给定的行之前或之后的行数。
如果在 *<start>* 和 *<end>* 的位置给出
:<funcname>
,则它是一个正则表达式,表示从与 *<funcname>* 匹配的第一个 funcname 行到下一个 funcname 行的范围。:<funcname>
从上一个-L
范围的末尾开始搜索,如果没有任何,则从文件的开头开始搜索。^:<funcname>
从文件的开头开始搜索。 函数名称的确定方式与git diff
计算补丁 hunk 标头的方式相同(请参见 gitattributes[5] 中的 *定义自定义 hunk-header*)。 -
- <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 是第一个图形化的仓库浏览器。 它用 tcl/tk 编写。
gitk 实际上是作为一个独立的项目来维护的,但为了方便最终用户,稳定的版本会作为 Git 套件的一部分进行分发。
gitk-git/ 来自 Paul Mackerras 的 gitk 项目
git://ozlabs.org/~paulus/gitk
GIT
属于 git[1] 套件的一部分