设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.42.1 → 2.47.0 无更改
- 2.42.0 08/21/23
- 2.36.1 → 2.41.2 无更改
- 2.36.0 04/18/22
- 2.30.1 → 2.35.8 无更改
- 2.30.0 12/27/20
- 2.22.1 → 2.29.3 无更改
- 2.22.0 06/07/19
- 2.14.6 → 2.21.4 无更改
- 2.13.7 05/22/18
- 2.10.5 → 2.12.5 无更改
- 2.9.5 07/30/17
- 2.1.4 → 2.8.6 无更改
- 2.0.5 12/17/14
概要
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>
GIT
是 git[1] 套件的一部分