【问题标题】:How to read file content from git objects?如何从 git 对象中读取文件内容?
【发布时间】:2019-07-03 10:04:38
【问题描述】:

拥有稀疏检出的工作树, 我希望解析完整的 git 对象, 为了能够更新稀疏.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

【问题讨论】:

  • git CLI 中用于从 blob 获取对象的相关命令(不确定如何/是否对您在 python 上下文中的需求有用,但仍然如此)是cat-file,尤其是@987654325 @ 旗帜。顺便提一下。

标签: git sparse-checkout


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2011-07-09
  • 2012-01-29
  • 2021-08-29
  • 2014-01-07
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多