给定一个GitHub存储库,我如何快速找到其首次提交的日期?

我经常想知道该项目的历史,但是我找不到快速的方法来开始该项目。提交历史非常长的项目的提交历史。

评论

SO上的线程可能会有所帮助如何显示“ git log”的首次提交看起来像git log --reverse将显示从最早到最新的提交

#1 楼

单击要查看最早提交的存储库的“ Insights”选项卡,然后单击左侧菜单栏上的“ Network”子选项卡。页面完全加载后(即,您可以看到很多行合并在一起),请按Shift +←一直到第一次提交。单击代表第一次提交的点,您可以获取它。

注意:这仅适用于最初在GitHub上创建的存储库,不适用于从其他位置导入的存储库(即未注册的提交)通过GitHub本身)。另外,如果存储库中有太多的派生,则此方法不一定有效。

或者,您可以将存储库克隆到本地计算机并运行以下命令:

git log --reverse


然后将以相反的顺序显示存储库的提交(最早的提交在前)。

评论


如果存储库中的分叉过多,则无法使用。

–迈克·麦凯(Mike McKay)
15年5月22日在21:10

在“图表”侧标签下找到“网络”(以防万一)

–杰迪贾
2015年5月30日14:12



如果默认分支没有最早的提交,则不起作用。

–橙色狗
16 Dec 6'在10:55

关于堆栈溢出也有类似的问题。您介意交叉发布此答案吗?

– Stevoisiak
18 Mar 16 '18 at 13:22

-1不能与--reverse一起使用以获取最早的提交,因为限制发生在过滤器之前。

– Quolonel问题
19-10-17在9:22

#2 楼

如果您已克隆存储库,则只需照常使用git命令即可:

// cd to repo
$ git log --reverse


它将以相反的顺序显示提交的历史记录。哈哈.-

#3 楼

Hydra的答案可能不适用于具有大量分支的项目:“无法加载网络图。太多的分支无法显示。”

您可以检查“图”下的“参与者”选项卡



评论


如果使用笔刷选择图形的最左边缘,然后单击第一个提交者的#个提交,则实际上将看到这些提交。

–戈登
16-10-18在12:20

@Gordon不是很有帮助,它只显示该人的所有提交

–史蒂芬·潘妮(Steven Penny)
16年11月30日在1:33

@StevenPenny,问题是如何获取第一次提交的日期。当然,这很混乱,但是如果仅选择最左边,则会看到第一次提交。我更喜欢在下面的答案中链接的专用站点。

–戈登
16-11-30在1:49



如果默认分支没有最早的提交,则不起作用。

–橙色狗
16 Dec 6'在10:55

这是最好的

–耳语者
17年1月30日在14:55

#4 楼

这将为您提供最后一页:
<?php
$s_url = $argv[1] . '/commits?page=';
$n_hi = 1;

while (true) {
   $s_hi = sprintf('%s%d', $s_url, $n_hi);
   echo $s_hi, "\t";
   $s_get = file_get_contents($s_hi);
   if (strpos($s_get, 'No commits found') !== false) {
      echo "Not Found\n";
      break;
   }
   echo "OK\n";
   $n_lo = $n_hi;
   $n_hi *= 2;
}

while (true) {
   $n_mid = intdiv($n_lo + $n_hi, 2);
   if ($n_mid == $n_lo) {
      break;
   }
   $s_mid = sprintf('%s%d', $s_url, $n_mid);
   echo $s_mid, "\t";
   $s_get = file_get_contents($s_mid);
   if (strpos($s_get, 'No commits found') !== false) {
      echo "Not Found\n";
      $n_hi = $n_mid;
   } else {
      echo "OK\n";
      $n_lo = $n_mid;
   }
}

示例:
PS C:\> git.php https://github.com/jp9000/OBS
https://github.com/jp9000/OBS/commits?page=1    OK
https://github.com/jp9000/OBS/commits?page=2    OK
https://github.com/jp9000/OBS/commits?page=4    OK
https://github.com/jp9000/OBS/commits?page=8    OK
https://github.com/jp9000/OBS/commits?page=16   OK
https://github.com/jp9000/OBS/commits?page=32   OK
https://github.com/jp9000/OBS/commits?page=64   OK
https://github.com/jp9000/OBS/commits?page=128  Not Found
https://github.com/jp9000/OBS/commits?page=96   Not Found
https://github.com/jp9000/OBS/commits?page=80   Not Found
https://github.com/jp9000/OBS/commits?page=72   OK
https://github.com/jp9000/OBS/commits?page=76   OK
https://github.com/jp9000/OBS/commits?page=78   OK
https://github.com/jp9000/OBS/commits?page=79   OK


#5 楼

您可以使用unix sed工具使用

git log --reverse | sed -n -e "3,3p" 


过滤第一次提交的日期。我认为正是您所需要的。

#6 楼

有一种方法可以从GitHub界面本身进行操作。

转到项目页面,选择Code选项卡,然后选择Commits子选项卡,如下所示:



这使您进入提交列表。如果您随后滚动到页面底部,则可以通过单击Older按钮来保持时光倒流。

我真的找不到一种对其进行排序的方法,因此提交以升序显示订购。

评论


我已经知道了问题是提交历史很长的项目。

–随机蓝
13年5月3日在7:35

#7 楼

git log --reverse --format="format:%ci" | sed -n 1p


如果要从命令行获取它

#8 楼

上面列出的解决方案都不适合我。如果树中有很多叉子,则git log --reverse不起作用。 @ steven-penny提到的脚本不起作用,因为github更改了其URL,以在浏览comqts after时将其哈希值用于/master?after=Y3Vyc29yOvqNPhkVDBdTgRaxBYnOx1jBe88LKzM0查询参数值,并且该仓库也没有任何图形。我很简单。 gitk。使用gitk并向下滚动到最后一个提交给了我我正在寻找的信息。
希望这可以帮助其他人寻找相似的信息。