设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.50.1 无更改
-
2.50.0
2025-06-16
- 2.47.1 → 2.49.1 无更改
-
2.47.0
2024-10-06
- 2.42.2 → 2.46.4 无更改
-
2.42.1
2023-11-02
- 2.38.1 → 2.42.0 无更改
-
2.38.0
2022-10-02
概要
scalar clone [--single-branch] [--branch <main-branch>] [--full-clone] [--[no-]src] [--[no-]tags] [--[no-]maintenance] <url> [<enlistment>] scalar list scalar register [--[no-]maintenance] [<enlistment>] scalar unregister [<enlistment>] scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>] scalar reconfigure [--maintenance=(enable|disable|keep)] [ --all | <enlistment> ] scalar diagnose [<enlistment>] scalar delete <enlistment>
描述
Scalar 是一个仓库管理工具,它优化了 Git 以用于大型仓库。Scalar 通过配置高级 Git 设置、在后台维护仓库以及帮助减少网络传输的数据来提高性能。
Scalar 的一个重要概念是“enlistment”(部署/登记目录):这是项目的顶级目录。它通常包含一个名为 src/
的子目录,这是一个 Git 工作区(worktree)。这鼓励了跟踪文件(在 src/
内部)与未跟踪文件(如构建产物,在 src/
外部)之间的分离。当用 Scalar 注册一个名称不是 src
的现有 Git 工作区时,该 enlistment 将与该工作区相同。
scalar
命令实现了各种子命令,以及根据子命令的不同选项。除了 clone
、list
和 reconfigure
--all
之外,所有子命令都期望在 enlistment 内部运行。
以下选项可以在子命令之前指定
命令
克隆
- clone [<选项>] <URL> [<enlistment>]
-
克隆指定仓库,类似于 git-clone[1]。默认情况下,只克隆提交和树对象。完成后,工作区位于 <enlistment>
/src
。稀疏检出(sparse-checkout)功能已启用(除非与
--full-clone
一起运行),并且仅存在顶级目录中的文件。使用git
sparse-checkout
set
扩展要查看的目录集,或使用git
sparse-checkout
disable
扩展到所有文件(有关更多详细信息,请参阅 git-sparse-checkout[1])。您可以使用git
ls-tree
HEAD
[:
<目录>] 探索稀疏检出之外的子目录。 - -b <名称>
- --branch <名称>
-
不检出克隆仓库的 HEAD 指向的分支,而是检出 <名称> 分支。
- --[no-]single-branch
-
仅克隆指向单个分支尖端的历史记录,该分支要么由
--branch
选项指定,要么是主分支远程的HEAD
所指向的分支。随后对结果仓库的 fetch 操作将只更新用于初始克隆的该分支的远程跟踪分支。如果在进行
--single-branch
克隆时,远程的 HEAD 没有指向任何分支,则不会创建远程跟踪分支。 - --[no-]src
-
默认情况下,
scalar
clone
将克隆的仓库放置在 <enlistment>/src
目录中。使用--no-src
将克隆的仓库直接放置在 <enlistment> 目录中。 - --[no-]tags
-
默认情况下,
scalar
clone
将获取远程广告的标签对象,未来的git
fetch
命令也会这样做。使用--no-tags
可避免在scalar
clone
中获取标签,并配置仓库以在将来避免获取标签。要在使用--no-tags
克隆后获取标签,请运行git
fetch
--tags
。 - --[no-]full-clone
-
默认情况下会初始化稀疏检出。此行为可以通过
--full-clone
关闭。 - --[no-]maintenance
-
默认情况下,
scalar
clone
会将 enlistment 配置为使用 Git 的后台维护功能。使用--no-maintenance
跳过此配置。
注册
- register [<enlistment>]
-
将 enlistment 的仓库添加到注册仓库列表中,并启动后台维护。如果未提供 <enlistment>,则注册与当前工作目录关联的 enlistment。
注意:当此子命令在名为
src/
的工作区中调用时,其父目录被视为 Scalar enlistment。如果工作区不名为src/
,则其本身将被视为 Scalar enlistment。 - --[no-]maintenance
-
默认情况下,
scalar
register
将 enlistment 配置为使用 Git 的后台维护功能。使用--no-maintenance
跳过此配置。这不会禁用可能已通过其他方式启用的任何维护。
运行
- scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]
-
运行给定的维护任务(如果指定了
all
,则运行所有任务)。除了all
和config
,此子命令只是转交给 git-maintenance[1](将fetch
映射到prefetch
,将pack-files
映射到incremental-repack
)。这些任务作为预定维护的一部分自动运行,一旦仓库在 Scalar 中注册。因此,通常不需要手动运行此子命令。
config
任务是 Scalar 特有的,它配置所有那些有助于 Git 更高效地处理大型仓库的固有默认设置。由于此任务作为scalar
clone
的一部分自动运行,因此很少需要显式调用此任务。