gitk
命名
gitk - Git 存储库浏览器
概要
gitk [<options>] [<revision range>] [\--] [<path>…]
描述
显示存储库或选定提交集中的更改。这包括可视化提交图,显示与每个提交相关的信息以及每个修订的树中的文件。
选项
为了控制显示哪些版本,gitk 支持适用于该git rev-list
命令的大多数选项。它还支持适用于这些git diff-*
命令的几个选项,以控制每个提交所引入的更改的方式。最后,它支持一些特定于 gitk 的选项。
sticked
由于命令行解析器的局限性,gitk 通常只能理解表单中带有参数的选项(请参阅 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>”(或函数名称 regex <funcname> )给出的行范围的演变。您不可以提供任何路径限制器。这目前仅限于从单一修订开始,也就是说,您可能只给出零个或一个正面修订参数。您可以多次指定此选项。
注意: gitk(不像 git-log [1] )当前只理解这个选项,如果你用它的参数指定它“粘在一起”。难道不是后加一个空格-L
。
<start> 和 <end> 可以采取以下形式之一:
- 数字如果 <start> 或 <end> 是一个数字,它将指定一个绝对行号(行数从1开始)。
- / regex /此表单将使用与给定的 POSIX 正则表达式匹配的第一行。如果 <start> 是一个正则表达式,它将从前一个
-L
范围的末尾(如果有的话)开始搜索,否则从文件起始处开始搜索。如果 <start> 是“^ / regex /”,它将从文件开头搜索。如果 <end> 是一个正则表达式,它将从 <start> 给出的行开始搜索。 - + offset 或 -offset 这仅对 <end> 有效,并将在 <start> 给出的行之前或之后指定行数。
如果给出“:<funcname>”来代替 <start> 和 <end> ,它是一个正则表达式,表示从匹配 <funcname> 的第一个 funcname 行到下一个 funcname 行的范围。“:<funcname>”从上一个-L
范围的末尾(如果有)搜索,否则从文件开头搜索。“^:<funcname>”从文件开头搜索。
<revision range>
限制修改显示。这可以是单个修订版的含义,从给定的修订版本开始显示,也可以是“ <from>
.. <to>
” 格式的范围,以显示所有修订版本之间的<from>
返回<to>
。请注意,可以应用更高级的修订选择。有关拼写对象名称的更完整列表,请参阅 gitrevisions [7] 。
<path>…
限制提交给定路径中的文件。请注意,为避免版本名称出现歧义,请使用“ - ”将路径与前面的选项分开。
特定于 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
最多显示100个对该文件所做的更改Makefile
。而不是只查找所有分支中当前分支的变化。
文件
用户配置和首选项存储在:
$XDG_CONFIG_HOME/git/gitk
如果它存在,否则$HOME/.gitk
如果存在
如果上述都不存在,则$XDG_CONFIG_HOME/git/gitk
默认情况下会创建并使用它。如果$XDG_CONFIG_HOME
未设置,则默认为$HOME/.config
所有情况。
History
Gitk 是第一个图形资源库浏览器。它是用 tcl / tk 编写的。
gitk
实际上是作为一个独立的项目来维护的,但为了方便最终用户,稳定版本作为 Git 套件的一部分进行分发。
gitk-git /来自 Paul Mackerras 的 gitk 项目:
git://ozlabs.org/~paulus/gitk