設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
- 2.42.1 → 2.50.1 無變化
-
2.42.0
2023-08-21
- 2.36.1 → 2.41.3 無更改
-
2.36.0
2022-04-18
- 2.30.1 → 2.35.8 無變更
-
2.30.0
2020-12-27
- 2.22.1 → 2.29.3 無變更
-
2.22.0
2019-06-07
- 2.14.6 → 2.21.4 無變更
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 無更改
-
2.9.5
2017-07-30
- 2.1.4 → 2.8.6 無變更
-
2.0.5
2014-12-17
概要
git ls-tree [-d] [-r] [-t] [-l] [-z] [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>] <tree-ish> [<path>…]
描述
列出給定樹物件的內容,類似於“/bin/ls -a”在當前工作目錄中的作用。請注意,
-
其行為與“/bin/ls”略有不同,因為<path>僅表示要匹配的模式列表,例如,指定目錄名(不帶
-r
)的行為將有所不同,並且引數的順序無關緊要。 -
其行為與“/bin/ls”類似,<path>被視為相對於當前工作目錄。例如,當你在一個包含目錄dir的目錄sub中時,你可以執行git ls-tree -r HEAD dir來列出樹(即
HEAD
中的sub/dir
)的內容。在這種情況下,你不想指定一個不在根級別的樹(例如git
ls-tree
-r
HEAD:sub
dir
),因為那會導致請求HEAD
提交中的sub/sub/dir
。但是,可以透過傳遞--full-tree選項來忽略當前工作目錄。
選項
- <tree-ish>
-
tree-ish 的 ID。
- -d
-
僅顯示命名的樹條目本身,而不顯示其子條目。
- -r
-
遞迴進入子樹。
- -t
-
即使在遞迴時也顯示樹條目。如果未傳遞
-r
則無效。-d
隱含-t
。 - -l
- --long
-
顯示 blob(檔案)條目的大小。
- -z
-
輸出時以 \0 終止行且不引用檔名。更多資訊請參見下面的輸出格式。
- --name-only
- --name-status
-
僅列出檔名(而不是“長”輸出),每行一個。不能與
--object-only
結合使用。 - --object-only
-
僅列出物件名稱,每行一個。不能與
--name-only
或--name-status
結合使用。這等同於指定--format='%
(objectname
),但對於此選項和該精確格式,命令都採用手動最佳化的程式碼路徑,而不是透過通用格式化機制。 - --abbrev[=<n>]
-
不顯示完整的 40 位元組十六進位制物件行,而是顯示唯一引用該物件的最短字首,該字首至少有 <n> 個十六進位制數字長。非預設位數可以透過 --abbrev=<n> 指定。
- --full-name
-
不顯示相對於當前工作目錄的路徑名,而是顯示完整的路徑名。
- --full-tree
-
不限制列表到當前工作目錄。隱含 --full-name。
- --format=<format>
-
一個字串,它將顯示結果中的
%
(fieldname
)進行插值。它還將%%
插值為%
,以及將%xNN
(其中NN
是十六進位制數字)插值為十六進位制程式碼為NN
的字元;例如%x00
插值為\0 (NUL),%x09
插值為\t (TAB),%x0a
插值為\n (LF)。指定此選項時,--format
不能與其他改變格式的選項(包括--long
、--name-only
和--object-only
)結合使用。 - [<path>…]
-
給定路徑時,顯示它們(請注意,這並非真正的原始路徑名,而是要匹配的模式列表)。否則,預設使用樹的根級別作為唯一的路徑引數。
輸出格式
ls-tree
的輸出格式由--format
選項或其他改變格式的選項(例如--name-only
等)決定(參見上面關於--format
的部分)。
使用某些--format
指令等同於使用那些選項,但呼叫完整的格式化機制可能比使用適當的格式化選項更慢。
在--format
將完全對映到現有選項的情況下,ls-tree
將使用適當的更快路徑。因此,預設格式等同於
%(objectmode) %(objecttype) %(objectname)%x09%(path)
此輸出格式與git update-index的--index-info
--stdin
所期望的相容。
當使用-l
選項時,格式變為
%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)
由 <objectname> 標識的物件大小以位元組為單位給出,並右對齊,最小寬度為 7 個字元。物件大小僅針對 blob(檔案)條目給出;對於其他條目,使用-
字元代替大小。
不帶-z
選項時,帶有“不尋常”字元的路徑名將按照配置變數core.quotePath
的解釋進行引用(參見git-config[1])。使用-z
時,檔名將原樣輸出,行以 NUL 位元組終止。
自定義格式
可以透過使用--format
選項以自定義格式列印,該選項能夠使用%
(fieldname
)表示法插值不同的欄位。例如,如果你只關心“objectname”和“path”欄位,你可以使用特定的“--format”執行,例如
git ls-tree --format='%(objectname) %(path)' <tree-ish>