You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Git指定提交中git archive提取的唯一文件列表?

获取Git提交对应归档文件的唯一列表

要直接获取git archive命令会提取的无重复文件列表,不需要先解压归档,用git ls-tree命令就能直接读取目标提交的树结构,得到当前提交中存在的所有文件:

针对HEAD提交

执行以下命令即可得到纯文本的唯一文件列表:

git ls-tree -r --name-only HEAD

参数说明:

  • -r:递归遍历所有子目录中的文件
  • --name-only:仅输出文件路径,不显示其他树对象信息

针对历史提交(指定SHAID)

把命令中的HEAD替换为目标提交的SHA哈希值即可:

git ls-tree -r --name-only <SHAID>

为什么不用git log --name-only

git log是遍历历史提交记录,会把每个提交中修改过的文件重复列出,而git ls-tree直接读取目标提交对应的当前所有文件快照,和git archive打包的内容完全一致,自然不会有重复。

内容的提问来源于stack exchange,提问作者Tryer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:01:24