设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
修补
调试
邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.46.1 → 2.47.0 无更改
- 2.46.0 07/29/24
- 2.44.1 → 2.45.2 无更改
- 2.44.0 02/23/24
- 2.39.1 → 2.43.5 无更改
- 2.39.0 12/12/22
- 2.38.1 → 2.38.5 无更改
- 2.38.0 10/02/22
- 2.30.1 → 2.37.7 无更改
- 2.30.0 12/27/20
- 2.29.1 → 2.29.3 无更改
- 2.29.0 10/19/20
- 2.28.1 无更改
- 2.28.0 07/27/20
- 2.27.1 无更改
- 2.27.0 06/01/20
- 2.26.1 → 2.26.3 无更改
- 2.26.0 03/22/20
- 2.25.1 → 2.25.5 无更改
- 2.25.0 无更改
- 2.24.1 → 2.24.4 无更改
- 2.24.0 11/04/19
- 2.23.1 → 2.23.4 无更改
- 2.23.0 08/16/19
- 2.19.3 → 2.22.5 无更改
- 2.19.2 11/21/18
- 2.19.1 无更改
- 2.19.0 09/10/18
- 2.18.1 → 2.18.5 无更改
- 2.18.0 06/21/18
概要
git commit-graph verify [--object-dir <dir>] [--shallow] [--[no-]progress] git commit-graph write [--object-dir <dir>] [--append] [--split[=<strategy>]] [--reachable | --stdin-packs | --stdin-commits] [--changed-paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split-options>
命令
- write
-
根据在 packfile 中找到的提交编写提交图文件。如果配置选项
core.commitGraph
被禁用,则此命令将输出警告,然后在不写入提交图文件的情况下返回成功。使用
--stdin-packs
选项,通过仅遍历指定 pack-index 中的对象来生成新的提交图。(不能与--stdin-commits
或--reachable
结合使用。)使用
--stdin-commits
选项,通过从标准输入中指定的提交开始遍历提交来生成新的提交图,作为十六进制 OID 列表,每行一个 OID。解析为非提交(直接或通过剥离标签)的 OID 会被静默忽略。格式错误或不存在的 OID 会生成错误。(不能与--stdin-packs
或--reachable
结合使用。)使用
--reachable
选项,通过从所有引用开始遍历提交来生成新的提交图。(不能与--stdin-commits
或--stdin-packs
结合使用。)使用
--append
选项,包含现有提交图文件中存在的所有提交。使用
--changed-paths
选项,计算并写入有关提交与其第一个父提交之间更改的路径的信息。此操作在大型存储库上可能需要一段时间。它为使用git log -- <path>
获取目录或文件的历史记录提供了显着的性能提升。如果给出此选项,则未来的提交图写入将自动假设此选项是预期的。使用--no-changed-paths
停止存储此数据。使用
--max-new-filters=<n>
选项,最多生成n
个新的布隆过滤器(如果指定了--changed-paths
)。如果n
为-1
,则不强制执行限制。只有新层中存在的提交才会针对此限制进行计数。要对较早的层进行追溯计算布隆过滤器,建议使用--split=replace
。覆盖commitGraph.maxNewFilters
配置。使用
--split[=<strategy>]
选项,将提交图写入存储在<dir>/info/commit-graphs
中的多个提交图文件的链。根据策略和其他拆分选项合并提交图层。尚未存在于提交图中的新提交将添加到一个新的“顶端”文件中。如果满足以下合并条件,则将此文件与现有文件合并-
如果指定了
--split=no-merge
,则永远不会执行合并,并且忽略其余选项。--split=replace
用新的链覆盖现有的链。裸--split
委托给其余选项。(请注意,合并提交图链会用长度为 1 的链替换现有链,其中第一个也是唯一的增量包含整个图)。 -
如果未指定
--size-multiple=<X>
,则令X
等于 2。如果新的顶端文件将有N
个提交,而以前的顶端有M
个提交,并且X
乘以N
大于M
,则将这两个文件合并为一个文件。 -
如果使用正整数
M
指定了--max-commits=<M>
,并且新的顶端文件将超过M
个提交,则将新的顶端与以前的顶端合并。最后,如果未指定
--expire-time=<datetime>
,则令datetime
为当前时间。写入拆分提交图后,删除所有修改时间早于datetime
的未使用的提交图。
-
- verify
-
读取提交图文件并针对对象数据库验证其内容。用于检查数据是否损坏。
使用
--shallow
选项,仅检查拆分提交图链中的顶端提交图文件。
示例
-
为本地
.git
目录中的打包提交编写提交图文件。$ git commit-graph write
-
编写提交图文件,使用
<pack-index>
中的提交扩展当前提交图文件。$ echo <pack-index> | git commit-graph write --stdin-packs
-
编写包含所有可达提交的提交图文件。
$ git show-ref -s | git commit-graph write --stdin-commits
-
编写包含当前提交图文件中的所有提交以及从
HEAD
可达的所有提交的提交图文件。$ git rev-parse HEAD | git commit-graph write --stdin-commits --append
配置
本节中此行以下的所有内容都是从 git-config[1] 文档中选择性地包含的。内容与在那里找到的内容相同
- commitGraph.generationVersion
-
指定在写入或读取提交图文件时要使用的生成编号版本的类型。如果指定版本 1,则不会写入或读取更正的提交日期。默认为 2。
- commitGraph.maxNewFilters
-
指定
git commit-graph write
的--max-new-filters
选项的默认值(参见 git-commit-graph[1])。 - commitGraph.readChangedPaths
-
已弃用。如果为真,则等效于 commitGraph.changedPathsVersion=-1,如果为假,则等效于 commitGraph.changedPathsVersion=0。(如果还设置了 commitGraph.changedPathVersion,则 commitGraph.changedPathsVersion 优先。)
- commitGraph.changedPathsVersion
-
指定 Git 将读取和写入的更改路径布隆过滤器的版本。可以是 -1、0、1 或 2。请注意,大于 1 的值可能与尚不了解这些版本的旧版 Git 不兼容。在混合版本的环境中操作时要谨慎。
默认为 -1。
如果为 -1,Git 将使用存储库中更改路径布隆过滤器的版本,如果不存在则默认为 1。
如果为 0,Git 将不会读取任何布隆过滤器,并且在指示写入时将写入版本 1 布隆过滤器。
如果为 1,Git 将仅读取版本 1 布隆过滤器,并将写入版本 1 布隆过滤器。
如果为 2,Git 将仅读取版本 2 布隆过滤器,并将写入版本 2 布隆过滤器。
有关更多信息,请参见 git-commit-graph[1]。
Git
是 git[1] 套件的一部分