使用Github API获取特定日期*和*分支的所有提交的有效方法

时间:2014-07-02 18:45:26

标签: git github github-api

我正在尝试在特定日期获得回购的所有提交。我也想知道每个提交的分支。

我正在寻找一种使用github api获取此信息的有效方法。

目前我正在获取repo的所有分支,然后分页该分支上的所有提交并在内存中过滤来自特定日期的提交。很明显,有很多分支/提交,效率非常低。

想法?

1 个答案:

答案 0 :(得分:1)

Git提交不在任何分支上,Git不跟踪首次创建提交的分支。分支是提交的指针,分支可以访问早期的提交。

GitHub的API允许你list commits by date using the since and until parameters,但我没有看到任何方法来获取有关包含提交的分支的信息。

如果您有一个有趣的提交,可以使用git branch --contains <hash>在命令行上查看当前包含它的分支,但这与活动的分支不同提交时创建。

像这样的bash循环可以让你接近你想要的东西:

for COMMIT in $(git log \
                    --since '2014-02-25' \
                    --until '2014-02-27' \
                    --pretty=format:'%h'); do

    echo $COMMIT && git branch --contains $COMMIT;
done

输出应该是这样的:

abcd123
* master
  develop
1234abc
  develop
1234567
* master

您只需在运行之前更新本地副本。