首页 > 解决方案 > 如何从 git 对象中读取文件内容?

问题描述

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

我试图找到一个命令将“未稀疏”签出到临时文件夹中。我想知道,如果我什至可以在没有结帐的情况下从 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

标签: gitsparse-checkout

解决方案


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


推荐阅读