如何在Github仓库中获取文件夹/目录中的最新提交日期?

9
例如:我想在这里获取最后一次提交的日期 - https://github.com/elasticsearch/elasticsearch/tree/master/dev-tools/pmd 使用此方法,我可以进入pmd文件夹 - https://api.github.com/repos/elasticsearch/elasticsearch/contents/dev-tools/pmd 但是,这没有任何关于日期的数据。 我尝试了https://api.github.com/repos/elasticsearch/elasticsearch/contents/dev-tools/pmd/commits,但是返回“未找到”的消息。
尝试了带有sha的git url- https://api.github.com/repos/elasticsearch/elasticsearch/git/blobs/58788337ae94dbeaac72a0901d778a629460c992,但是即使这个也没有返回任何有用的信息。
如何使用github-api获取文件夹内提交的日期?
1个回答

13

使用GitHub API的新答案:

使用GET /repos/:owner/:repo/commits请求触及子目录的提交,并传递指定子目录的path参数:

path: 字符串,仅返回包含此文件路径的提交记录。

响应将会是零个或多个提交记录。获取最新的提交记录并查看其commit/author/datecommit/committer/date,具体取决于您要查找哪个日期:

[
  {
    ...,
    "commit": {
      "author": {
        ...,
        "date": "2011-04-14T16:00:49Z"
      },
      "committer": {
        ...,
        "date": "2011-04-14T16:00:49Z"
      },
      ...,
    },
  },
]

尝试使用git log -n 1 --pretty=format:%cd 目录路径命令。这将给出该目录中最近一次提交的提交日期。 你还可以使用其他日期格式
  • %cD: 提交者日期,RFC2822 格式
  • %cr: 提交者日期,相对时间
  • %ct: 提交者日期,UNIX 时间戳
  • %ci: 提交者日期,ISO 8601 格式
  • %ad: 作者日期(格式遵循 --date= 选项)
  • %aD: 作者日期,RFC2822 格式
  • %ar: 作者日期,相对时间
  • %at: 作者日期,UNIX 时间戳
  • %ai: 作者日期,ISO 8601 格式

太棒了,我在我的示例上尝试了一下并得到了输出。但是你有什么想法为什么会显示两个不同的日期,即作者显示2014年3月12日,而提交者则是2014年3月13日? - tech_human
作者和提交者之间有什么区别? - tech_human
@tech_human,通常情况下没有区别。但是编写代码的人是作者,最近提交代码的人是提交者。请参见这个答案,其中引用了Pro Git中的这一章节以获取更多详细信息。我相信如果作者重新设置了提交,则这些提交可以具有不同的日期但是相同的作者。 - Chris
基本上,对于本地来说,这归结为使用额外的标志“-n 1”,并在git log后将目录路径输入为位置参数。即git log -n 1 <路径> - ijoseph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接