名称

scalar - 用于管理大型 Git 仓库的工具

概要

scalar clone [--single-branch] [--branch <main-branch>] [--full-clone]
	[--[no-]src] <url> [<enlistment>]
scalar list
scalar register [<enlistment>]
scalar unregister [<enlistment>]
scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]
scalar reconfigure [ --all | <enlistment> ]
scalar diagnose [<enlistment>]
scalar delete <enlistment>

描述

Scalar 是一种仓库管理工具,可优化 Git 在大型仓库中的使用。 Scalar 通过配置高级 Git 设置、在后台维护仓库以及帮助减少通过网络发送的数据来提高性能。

一个重要的 Scalar 概念是登记:这是项目的顶级目录。它通常包含子目录 src/,这是一个 Git 工作树。这鼓励跟踪文件(在 src/ 中)和未跟踪文件(例如构建工件,在 src/ 之外)之间的分离。当使用 Scalar 注册一个名称不是 src 的现有 Git 工作树时,登记将与该工作树相同。

scalar 命令实现各种子命令,并根据子命令的不同而有不同的选项。除了 clonelistreconfigure --all 之外,所有子命令都希望在登记中运行。

以下选项可以在子命令之前指定

-C <目录>

在运行子命令之前,更改工作目录。此选项模仿 git[1] 的相同选项。

-c <键>=<值>

在运行指定的子命令期间,配置此设置。此选项模仿 git[1] 的相同选项。

命令

Clone

clone [<选项>] <url> [<登记>]

克隆指定的仓库,类似于 git-clone[1]。默认情况下,仅克隆 commit 和 tree 对象。完成后,工作树位于 <登记>/src

启用 sparse-checkout 功能(除非使用 --full-clone 运行),并且仅显示顶级目录中的文件。使用 git sparse-checkout set 来扩展您想要查看的目录集,或使用 git sparse-checkout disable 扩展到所有文件(有关更多详细信息,请参见 git-sparse-checkout[1])。您可以使用 git ls-tree HEAD[:<directory>] 浏览 sparse-checkout 之外的子目录。

-b <name>
--branch <name>

不检出克隆仓库的 HEAD 指向的分支,而是检出 <name> 分支。

--[no-]single-branch

仅克隆通向单个分支的顶端的历史记录,该分支由 --branch 选项指定,或者由主分支的 remote 的 HEAD 指向。

后续获取到结果仓库的操作只会更新此选项用于初始克隆的分支的远程跟踪分支。如果在创建 --single-branch 克隆时,remote 的 HEAD 未指向任何分支,则不会创建远程跟踪分支。

--[no-]src

默认情况下,scalar clone 将克隆的仓库放置在 <登记>/src 目录中。使用 --no-src 将克隆的仓库直接放置在 <登记> 目录中。

--[no-]tags

默认情况下,scalar clone 将获取 remote 通告的标签对象,并且将来的 git fetch 命令也将这样做。使用 --no-tags 可以避免在 scalar clone 中获取标签,并将仓库配置为将来避免获取标签。要在使用 --no-tags 克隆后获取标签,请运行 git fetch --tags

--[no-]full-clone

默认情况下会初始化 sparse-checkout。可以通过 --full-clone 关闭此行为。

List

list

列出当前由 Scalar 注册的登记。此子命令不需要在登记内部运行。

Register

register [<登记>]

将登记的仓库添加到已注册仓库的列表中,并启动后台维护。如果未提供 <登记>,则注册与当前工作目录关联的登记。

注意:当在名为 src/ 的工作树中调用此子命令时,其父目录被认为是 Scalar 登记。如果工作树命名为 src/,则其本身将被认为是 Scalar 登记。

Unregister

unregister [<登记>]

从 Scalar 注册的仓库列表中删除指定的仓库,并停止计划的后台维护。

Run

scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<登记>]

运行给定的维护任务(如果指定了 all,则运行所有任务)。除了 allconfig 之外,此子命令只是交给 git-maintenance[1](将 fetch 映射到 prefetch,将 pack-files 映射到 incremental-repack)。

这些任务作为计划维护的一部分自动运行,一旦仓库注册到 Scalar。因此,通常不需要手动运行此子命令。

config 任务是 Scalar 特有的,它配置了所有那些固执己见的默认设置,这些设置使 Git 能够更有效地处理大型仓库。由于此任务作为 scalar clone 的一部分自动运行,因此很少需要显式调用此任务。

Reconfigure

在 Scalar 升级之后,或者当 Scalar 登记的配置以某种方式损坏或被错误地更改时,此子命令允许重新配置登记。

使用 --all 选项,将重新配置当前在 Scalar 中注册的所有登记。每次 Scalar 升级后都使用此选项。

Diagnose

diagnose [<登记>]

在报告 Scalar 的问题时,通常有助于提供此命令收集的信息,包括日志和描述当前登记的数据形状的某些统计信息。

此命令的输出是一个 .zip 文件,该文件被写入 src 目录中工作树相邻的目录中。

Delete

delete <登记>

此子命令允许您从本地文件系统中删除现有的 Scalar 登记,同时取消注册该仓库。

GIT

属于 git[1] 套件的一部分

scroll-to-top