我正在尝试在特定日期获得回购的所有提交。我也想知道每个提交的分支。
我正在寻找一种使用github api获取此信息的有效方法。
目前我正在获取repo的所有分支,然后分页该分支上的所有提交并在内存中过滤来自特定日期的提交。很明显,有很多分支/提交,效率非常低。
想法?
答案 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
您只需在运行之前更新本地副本。