首页 > 解决方案 > 如何从 Github 存储库中获取文件在特定日期的修订版?

问题描述

你们中有多少人曾经点击过一个文件版本的 Github 链接,只是为了找出链接的创建者在从 Github 复制它时并不关心放置一个固定的提交 sha(或者,protip:只需按Y),并且链接已过期,因为现在master分支指向在创建链接时的不同提交,同时文件被移动和更改?

✋‍♀️‍♀️‍♂️‍♂️</p>

我明白了......那么是否有任何 Github url 参数指定分支路径的方法,这将允许我在过去的特定时间显示分支的版本?

https://github.com/repo/master/old/path/to/file?date=2019-07-31T00:15:43+00:00这样的东西。

另一种方法是从 Github 问题的评论中找出日期,您从那里复制/单击链接并开始滚动浏览分支的提交分页,直到(几乎在最后一页..)您最终找到最多最近提交更接近您找到的日期,因此您可以开始浏览刚刚找到的提交的文件,以便在浪费 10/15 分钟后获得初始链接作者打算实际引导的文件版本。

或者你需要问一个关于 SO 的答案。不是很方便。

Github是否支持这样的参数?

标签: dategithubcommitsharevision

解决方案


您可以curl使用 GitHub API 创建一个 ,以列出提交

该特定 API ( GET /repos/:owner/:repo/commits) 有一个until参数:

只有在此日期之前的提交才会被返回。这是 ISO 8601 格式的时间戳:YYYY-MM-DDTHH:MM:SSZ.

列出的第一个提交将是您要查找的提交。您可以在此处此处
查看示例。


推荐阅读