我经常想知道该项目的历史,但是我找不到快速的方法来开始该项目。提交历史非常长的项目的提交历史。
#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
并向下滚动到最后一个提交给了我我正在寻找的信息。希望这可以帮助其他人寻找相似的信息。
评论
SO上的线程可能会有所帮助如何显示“ git log”的首次提交看起来像git log --reverse将显示从最早到最新的提交