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

如何查询GitHub仓库内指定文件的首次引入时间?

查询GitHub仓库内指定文件首次引入日期的可行方案

你之前用的仓库元数据接口只能返回整个仓库的创建时间,而你请求的文件内容接口仅会返回文件当前版本的最近更新信息,本身不存储文件的历史提交溯源数据,自然拿不到首次创建时间。
要获取文件第一次被提交到仓库的时间,有两种常用方案:

方案1:直接调用GitHub API查询(无需克隆仓库)

使用GitHub官方的提交列表接口,通过path参数指定目标文件路径,筛选和该文件相关的所有提交,取最早一条的提交时间即可。
针对你举例的gensim/scripts/make_wikicorpus.py文件,第一步可以先执行如下命令获取该文件的提交分页信息:

curl -I "https://api.github.com/repos/RaRe-Technologies/gensim/commits?path=gensim/scripts/make_wikicorpus.py&per_page=1"

返回的响应头里Link字段会标注该文件提交记录的最后一页页码,把请求参数里的page值改成最后一页的页码再发起请求:

curl "https://api.github.com/repos/RaRe-Technologies/gensim/commits?path=gensim/scripts/make_wikicorpus.py&per_page=1&page=这里填最后一页的页码" | grep '"date"'

返回结果里的第一个date字段值,就是该文件首次被引入仓库的时间。

注意:接口里的path参数只需要填文件在仓库内的相对路径,不需要带/blob/分支名/这类前缀,否则会匹配不到对应提交记录。

方案2:本地已克隆仓库时用git命令快速查询

如果你本地已经拉取了对应仓库,直接在仓库根目录执行如下命令即可,不需要调用外部接口,速度更快:

git log --diff-filter=A --follow --format=%ai -- 目标文件相对路径 | tail -1

命令参数说明:

  • --diff-filter=A:仅筛选文件被首次添加(Add)到仓库的提交记录
  • --follow:自动跟踪文件的重命名历史,不会因为文件中途改过名就丢失早期记录
  • tail -1:取最早的一条提交时间作为结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:39:30