2

在一个裸存储库中,我可以键入$ git ls-tree -r master. (这与我可以使用命令在非裸仓库中获得的东西是一样的git ls-files

获取 git 存储库中文件及其 sha refs 的完整列表。

使用 Rugged,我如何获取特定分支或主控中的文件列表?

4

2 回答 2

2

您正在寻找的是崎岖的 Tree 对象。如果您有一个提交,例如 from commit = repo.head.target,您可以通过将其作为数组访问来获取该提交树中的文件:

tree = commit.tree
puts tree[0].filename

有关更多示例,请参见https://github.com/libgit2/rugged#tree-objects

于 2014-09-30T14:14:55.593 回答
0

在坚固的 1.2.0 中,您可以执行以下操作:

repo.index.entries.map { |e| e[:path] }
于 2022-02-27T19:43:33.543 回答