如何获取Git特定提交对应的仓库文件列表?已知当前分支可用git ls-files
获取Git特定提交版本的文件列表
嘿,刚好知道怎么解决这个问题!你已经熟悉当前分支用git ls-files,那针对特定提交的话,用git ls-tree命令就可以轻松搞定,具体用法如下:
最常用的简洁版(仅显示文件名):
运行这个命令,把<commit-hash>替换成你要查询的提交哈希、分支名或者标签名就行:git ls-tree --name-only -r <commit-hash>参数解释:
--name-only:只输出文件名,去掉其他额外信息-r:递归遍历所有子目录,确保列出所有层级的文件
举个例子,如果要查看哈希为
a1b2c3d的提交下的所有文件,就用:git ls-tree --name-only -r a1b2c3d查看详细文件信息版:
如果需要看到文件的权限、类型等额外信息,去掉--name-only参数即可:git ls-tree -r <commit-hash>输出会包含文件的模式(比如
100644代表普通文件)、对象哈希、文件类型(blob)和文件名。
另外补充个小技巧:如果你临时记不住命令,也可以用git show配合过滤来实现,但git ls-tree显然更直接高效。比如:
git show <commit-hash>: | awk '{print $4}'
不过这个会混入一些额外信息,还是优先推荐git ls-tree的方法。
内容的提问来源于stack exchange,提问作者yigal
相关产品推荐
相关产品推荐

