Git

名稱

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 的一個重要概念是「徵用」(enlistment):這是專案的頂層目錄。它通常包含子目錄 src/,這是一個 Git 工作樹。這鼓勵了追蹤檔案(在 src/ 內)與未追蹤檔案(例如,在 src/ 外的建置成品)之間的分離。當註冊一個名稱不是 src 的現有 Git 工作樹到 Scalar 時,「徵用」將與工作樹相同。

scalar 命令實作了各種子命令,並且根據子命令的不同,選項也不同。除了 clonelistreconfigure --all 之外,所有子命令都預期在「徵用」中執行。

以下選項可以在子命令之前指定

-C <目錄>

在執行子命令之前,變更工作目錄。此選項模仿 git[1] 的相同選項。

-c <key>=<value>

在執行指定的子命令期間,配置此設定。此選項模仿 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[:<目錄>] 來探索稀疏檢出外的子目錄。

-b <名稱>
--branch <名稱>

不要檢出被克隆儲存庫的 HEAD 所指向的分支,而是檢出 <名稱> 分支。

--[no-]single-branch

僅克隆導致單個分支尖端歷史記錄,由 --branch 選項指定或由主要遠端分支的 HEAD 指向。

對結果儲存庫的進一步提取 (fetch) 只會更新此選項用於初始克隆的分支的遠端追蹤分支。如果遠端的 HEAD 在建立 --single-branch 克隆時沒有指向任何分支,則不會建立遠端追蹤分支。

--[no-]src

預設情況下,scalar clone 將克隆的儲存庫放置在 <徵用>/src 目錄中。使用 --no-src 將克隆的儲存庫直接放置在 <徵用> 目錄中。

--[no-]tags

預設情況下,scalar clone 將提取遠端所宣告的 tag 物件,並且未來的 git fetch 命令也會這樣做。使用 --no-tags 來避免在 scalar clone 中提取 tag,並配置儲存庫以避免未來提取 tag。要在使用 --no-tags 克隆後提取 tag,請執行 git fetch --tags

--[no-]full-clone

預設情況下會初始化稀疏檢出。可以使用 --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