如何从 git 个对象中读取文件内容?

How to read file content from git objects?

一个稀疏检查的工作树, 我希望 解析完整的 git 对象, 为了能够更新稀疏.git/info/sparse-checkout, 基于一些业务逻辑(这里不应该相关)。

我试图找到一个命令来将 "unsparsed" 签出到一个临时文件夹中。 我想知道,如果我什至可以在没有结账的情况下从 git 对象中读取内容。

尝试围绕

构建模块图形
def _find_addons(dir):
    """ yield (addon_name, addon_dir, manifest) """
    for root, _, files in os.walk(dir):
        if ".git" in root:
            continue
        if any(s in root for s in SKIP_PATHS):
            continue
        if any(M in files for M in MANIFEST_NAMES):
            yield os.path.dirname(root), os.path.basename(root), _read_manifest(root)

完整代码:

https://github.com/xoe-labs/odooup/blob/master/odooup/_modulegraph.py

使用 git cat-file -p <object name> 从其 id 打印 git 对象的内容。