設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 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
的一部分自動執行,因此很少需要顯式呼叫此任務。