You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用isomorphic-git读取指定文件提交记录报错求助

解决isomorphic-git读取指定文件提交历史的报错问题

问题场景

使用isomorphic-git v1.25.6调用git.log()时,指定filepath参数出现如下错误:

<git.log>: Could not find file or directory found at "5cd2fc6d4023ff3c104801498e4f54a3cbae4c6b:path/to/file

省略filepath参数可正常获取最新提交,但需要获取指定文件的修改日期,且Git工作目录状态干净。

解决方案

  • 核对文件路径准确性
    确认filepath是相对于dir参数(当前为.即工作目录)的相对路径,注意区分大小写(Linux/macOS环境下路径大小写敏感),避免因路径拼写错误导致文件找不到。

  • 改用filepaths数组参数
    部分版本的isomorphic-git中,单文件提交历史查询更推荐使用filepaths数组(即使仅查询单个文件),修改代码如下:

    git.log({fs, dir: '.', filepaths: ['path/to/file'], depth: 2})
    
  • 验证目标文件在提交历史中的存在性
    针对报错中的提交哈希5cd2fc6d4023ff3c104801498e4f54a3cbae4c6b,用原生Git命令确认该提交是否包含目标文件:

    git ls-tree 5cd2fc6d4023ff3c104801498e4f54a3cbae4c6b -- path/to/file
    

    若命令无输出,说明该提交中不存在此文件,可能是文件在后续提交才被添加,或路径存在错误。

  • 获取文件修改日期的补充方法
    若仅需文件最后修改日期,可通过以下方式:

    • 结合git.status()获取文件状态,搭配文件系统的修改时间;
    • 成功获取文件提交记录后,提取提交对象中的commit.author.timestamp或commit.committer.timestamp,转换为可读日期格式。

内容的提问来源于stack exchange,提问作者bert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:27:45