gitk

优质
小牛编辑
131浏览
2023-12-01

命名

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..commit2commit2 ^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