使用 GitPython 列出特定 git 提交的目录内容

2023-12-26

使用 GitPython,我尝试列出给定提交时目录的内容(即当时目录的“快照”)。

在终端中,我要做的是:

git ls-tree --name-only 4b645551aa82ec55d1794d0bae039dd28e6c5704

我怎样才能在 GitPython 中做同样的事情?

根据我找到的类似问题的答案(GitPython 通过 sha 获取树和 blob 对象 https://stackoverflow.com/q/10717790/222529)我尝试过递归遍历base_commit.tree和它的.trees,但我似乎没有到达任何地方。

有任何想法吗?


事实上,遍历树/子树是正确的方法。然而,内置traverse方法可能会出现子模块问题。相反,我们可以自己迭代地进行遍历并找到所有 blob 对象(其中包含给定提交时存储库中的文件)。没有必要使用execute.

def list_files_in_commit(commit):
    """
    Lists all the files in a repo at a given commit

    :param commit: A gitpython Commit object
    """
    file_list = []
    dir_list = []
    stack = [commit.tree]
    while len(stack) > 0:
        tree = stack.pop()
        # enumerate blobs (files) at this level
        for b in tree.blobs:
            file_list.append(b.path)
        for subtree in tree.trees:
            stack.append(subtree)
    # you can return dir_list if you want directories too
    return file_list

如果您希望文件受到给定提交的影响,可以通过commit.stats.files.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GitPython 列出特定 git 提交的目录内容 的相关文章

  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • NumPy linalg.eig

    我有这个烦人的问题 但我还没有弄清楚 我有一个矩阵 我想找到特征向量 所以我写 val vec np linalg eig mymatrix 然后我得到了 vec 我的问题是 当我小组中的其他人对相同的矩阵 mymatrix 做同样的事情时
  • 字符串中的注释和注释中的字符串

    我正在尝试使用 Python 和 Regex 计算 C 代码中包含的注释中的字符数 但没有成功 我可以先删除字符串以删除字符串中的注释 但这也会删除注释中的字符串 结果会很糟糕 是否有机会通过使用正则表达式来询问不匹配注释中的字符串 反之亦
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • CNTK 抱怨 LSTM 中的动态轴

    我正在尝试在 CNTK 中实现 LSTM 使用 Python 来对序列进行分类 Input 特征是固定长度的数字序列 时间序列 标签是 one hot 值的向量 Network input input variable input dim
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • Python Django-如何从输入文件标签读取文件?

    我不想将文件保存在我的服务器上 我只想在下一页中读取并打印该文件 现在我有这个 index html
  • Werkzeug 中的线程和本地代理。用法

    首先 我想确保我正确理解了功能的分配 分配本地代理功能以通过线程内的模块 包 共享变量 对象 我对吗 其次 用法对我来说仍然不清楚 也许是因为我误解了作业 我用烧瓶 如果我有两个 或更多 模块 A B 我想将对象C从模块A导入到模块B 但我
  • 为什么我应该使用 WSGI?

    使用 mod python 一段时间了 我读了越来越多关于 WSGI 有多好的文章 但没有真正理解为什么 那么我为什么要切换到它呢 有什么好处 这很难吗 学习曲线值得吗 为了用 Python 开发复杂的 Web 应用程序 您可能会使用更全面
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • 使用 pybtex 将 bibtex 转换为格式化的 HTML 参考书目,例如哈佛风格

    我正在使用 Django 并将 bibtex 存储在我的模型中 并且希望能够以格式化 HTML 字符串的形式向我的视图传递引用 使其看起来像哈佛引用样式 使用中描述的方法Pybtex 无法识别 bibtex 条目 https stackov
  • 在 Windows 7 上的 Sourcetree 中比较 Word docx 文件

    我一直在尝试获取在 Windows 7 上的 Sourcetree 中工作的 Word docx 文件的文本差异 我已按照此处的说明进行操作将 Microsoft Word 与 git 结合使用 http blog martinfenner
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • 字符串列表,获取n个元素的公共子串,Python

    我的问题可能类似于this https stackoverflow com questions 37514193 count the number of occurrences of n length not given string in
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • 通过 Web 界面执行 python 单元测试

    是否可以通过 Web 界面执行单元测试 如果可以 如何执行 EDIT 现在我想要结果 对于测试 我希望它们是自动化的 可能每次我对代码进行更改时 抱歉我忘了说得更清楚 EDIT 这个答案此时已经过时了 Use Jenkins https j
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du

随机推荐

  • Bootstrap 3 带有输入组的验证状态

    如何将 Bootstrap 3 验证状态添加到输入组 该状态似乎仅适用于组的输入部分 编辑 10 02 2014 为了澄清 我使用带有按钮的输入组 div class form group has success col md 3 div
  • C++ 错误 - C4819、C2761、C2447

    我正在使用 Visual Studio 2017 来了解 SFML 和精灵动画 但我无法运行此代码 我用编码 Unicode 带有签名的UTF 8 代码页65001 保存它 include
  • C中的字符数组消隐

    code int main int n m i j char a 10 10 printf enter n and m values n scanf d d n m printf enter array values for i 0 i
  • Webpack UMD:关键依赖项...无法静态提取

    我正在尝试使用 webpack 构建一个 umd 库 无论我做什么都会收到警告 D Code Node sample io source index ts 中的警告 3 24 关键依赖 require函数的使用方式无法静态提取依赖 当我尝试
  • 访问远程服务器时MySQL连接出错

    I ve 托管 MySQL 数据库 in a 网络服务器 I ve 授予所有权限并允许我的IP远程连接到这个数据库从我的本地计算机 它已连接 我可以将数据从数据库检索到我的 Java Swing 应用程序 但是有时我收到此错误消息 and
  • 自定义鸭子类型的 Python 类型注释

    蟒蛇的typing模块定义了许多鸭子类型 例如 typing SupportsAbs表示任何实现了 abs 特殊方法 是否可以以某种方式定义自定义鸭子类型 以便我可以将它们用作有效的类型注释 例如 我希望能够注释一个参数应该是一个鸭子类型的
  • 使用 Ajax 从实时 PHP 和 Python 输出更新页面内容

    老用户 第一次提问 我从社区学到了很多东西 我喜欢这个网站 这就是我拍摄的目的 我想要一个在后端运行 ping 命令的 Web 界面 理想情况下 我想要一个网站 该网站具有允许您输入 IP 地址或域的文本输入 运行命令的按钮以及从 PHP
  • 批处理 - 将变量转换为大写

    我将如何改变destl变量在使用前转换为大写 我假设某种角色交换 但我无法让它工作 代码如下 echo off echo set P destf Enter First Name set P destl Enter Last Name se
  • 如何从youtubeApi v3中的VideoId android获取youtube视频的评论?

    我看过了Youtube API v3 https developers google com youtube v3 docs videos对于Android 我可以获得有关的大部分信息Youtube Video via Video Id 然
  • 解析错误:语法错误,意外的 T_FUNCTION 第 10 行?

    我的代码有什么问题吗 我在测试服务器上运行了代码并且代码有效 但是当我将其上传到生产服务器时 我得到了 Parse error syntax error unexpected T FUNCTION in hermes bosweb web0
  • 关于c#中隐式运算符重载的问题

    MyClass c 10 有什么办法可以让这段代码工作吗 我知道通过隐式运算符重载 您可以得到相反的结果 int i instanceOfMyClass Thanks Sure class MyClass public static imp
  • Scala 宏:使用准引号访问成员

    我正在尝试实现一个隐式物化器 如下所述 http docs scala lang org overviews macros implicits html http docs scala lang org overviews macros i
  • 虚拟内存空间

    虚拟内存空间大小取决于什么 它取决于 RAM 架构还是其他什么 基本上它取决于体系结构 32 位 64 位等等 这是一个very对事物的简单解释 但所谓的 体系结构 限制了虚拟地址空间的大小 例如 32 位架构将能够寻址 2 31 内存地址
  • 关系代数相当于 SQL“NOT IN”

    是否存在与 SQL 表达式等价的关系代数NOT IN 例如 如果我有以下关系 A1 A2 x y a b y x 我想删除 A1 在 A2 中的关系中的所有元组 在 SQL 中我可能会查询 SELECT FROM R WHERE R A1
  • 检查一个对象是否是任意一个类列表的实例 (Android)

    我已经研究这个有一段时间了 虽然它并不重要 但我想知道是否有一种简洁的方法 也许是 1 个衬垫 可以用来检查一个对象是否是多个类中任何一个的实例 我可以做 if anObject instanceof Pupil else if anObj
  • 为 Eclipse 插件导入 org.eclipse.core 包

    我正在尝试创建一个插件来模仿 Eclipse 开放资源对话框 CTRL SHIFT R 我已经学会了如何按照以下步骤创建 FilteredItemsSelectionDialogexample http help eclipse org g
  • 如何在 Eclipse/Aptana Studio 中调试 ruby​​ 测试?

    有没有办法在 Aptana Studio Eclipse 中调试所有 单个测试 ruby debug19 ruby debug ide已安装 我可以设置断点并调试我的开发环境 例如在控制器的索引方法中 如果我去http localhost
  • iPhone sdk 中最简单的逐帧动画技术是什么?

    我已经为 iphone 平台开发了大约 3 周 我正在尝试使用 16 个 1000x1000 png 图像 具有透明度 设置逐帧动画 并计划稍后使用大约 100 个图像进行动画处理 所以首先我尝试了使用 imageNamed 为所有图像设置
  • Java JDK静默安装指定路径

    我想以静默模式 实际上是使用Chef 安装指定版本的JDK 我的问题是 当我添加 INSTALLDIR 参数时 Java JDK 安装失败 如果没有它 JDK 将安装在默认目录中 C 程序文件 Java or C 程序文件 x86 Java
  • 使用 GitPython 列出特定 git 提交的目录内容

    使用 GitPython 我尝试列出给定提交时目录的内容 即当时目录的 快照 在终端中 我要做的是 git ls tree name only 4b645551aa82ec55d1794d0bae039dd28e6c5704 我怎样才能在