如何导航到Github存储库中最早的提交?

jdw*_*jdw 110 github

在GitHub中,有一种简单的方法可以导航到最早的大型开源项目提交吗?

截至今天,该项目已提交超过13,000份.我不想在提交历史记录页面上按下"较旧"按钮数百次,以达到初始提交(或第一次提交).

Sch*_*lzy 79

克隆存储库,使用命令行打开并运行 $ git log --reverse

这将以相反的顺序显示提交.

然后,一旦你拥有了第一次提交的ID(对象名称),你就可以在github上查看...就像...... https://github.com/UserName/Repo/commit/6a5ace7b941120db5d2d50af6321770ddad4779e

  • 我无法相信有多么奇怪,过于复杂的商业我必须筛选才能找到一个简单合理的答案.谢谢. (12认同)
  • 一个调整,我会添加`oneline` arg到这个 - `git log --reverse --oneline`,以便您可以将其作为列表查看 (5认同)

Rom*_*kov 50

没有明显的UI可以做到这一点,但是有一种方法可以构建正确的URL以转到提交日志的第一页.

假设我们想要找到dotnet/coreclr存储库的第一个提交.首先记下存储库中的提交数量:目前为16,634.现在转到提交列表,然后单击"较旧" 一次.URL将是这样的:https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34

请注意该+34部分.这就是跳过了多少次提交.将其更改为16,634减去每页减去35减35,这将为您提供此URL,它将您带到coreclr提交历史记录的第一页.

  • 很好,我创建了一个书签来做到这一点.https://github.com/bpceee/oldest (3认同)
  • @odigity 它也适用于私人回购。 (3认同)

Von*_*onC 43

2015 2月:在GitHub中,是否有一种简单的方法可以导航到最早的大型开源项目提交?

是的,现在有!(含义:克隆回购,并git log在本地克隆中应用)

自2017年1月起,您可以在GitHub上" 更快地导航文件历史并改进责备视图 ".

无论您是调试回归还是尝试了解某些​​代码如何具有当前形状,您通常都希望在特定更改之前查看文件的外观.
通过改进的责备视图,您可以轻松查看文件的任何部分随着时间的推移如何演变,而无需查看文件的完整历史记录.

这是一个演示回到git/git repo本身的原始最早提交(47K +提交)......三次点击!

演示git/git

这里的诀窍是选择一个可能在第一次(或非常早)的提交中找到的文件,如a README.md.

  • 这通常有效,但它假定您知道创建repo时存在哪些文件,并且您可以找到自初始以来未多次更改的行. (7认同)

小智 26

在项目页面上单击选项卡Insights > Contributors。选择直方图的开头。单击提交编号。完毕。

Github Surfraw 存储库,箭头指向 2 个步骤:select-histogram-range 和 click-filtered-commits

PS -绘制一个小范围以获得单个页面。


Viv*_*Dev 20

我想看看nodejs项目最早的提交之一.我做了以下事情.

  1. 访问了网站nodejs.然后观察到此时提交的总数约为二万三千(准确地说是23652).

在此输入图像描述

  1. 接下来,我点击了提交链接,然后转到https://github.com/nodejs/node/commits/master,如下所示.

在此输入图像描述

  1. 现在滚动到最后,我找到了更新和更旧的按钮.更新按钮被禁用.我点击了旧按钮,它转到了https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+34

  2. 现在观察网址是+34.现在我将其更改为23000(因为我观察到的提交数量是23000).所以我尝试的新网址是

https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+23000

  1. 现在我快到了.通过几次迭代或更旧的按钮点击,我到达了我想要的位置.

  • 这是否与您上面的 2 个答案重复?/sf/answers/3475347851/ (6认同)
  • 是重复的答案,但我喜欢这些图像,它使它更具吸引力。 (2认同)

Xia*_*ZHU 9

另一个仅使用 UI 的简单技巧是检查文件的 git 历史记录.gitignore,或者README.md,99% 的情况下,您会很快找到第一个提交。


Ste*_*ica 7

您可以使用init bookmarklet导航到GitHub存储库的第一次提交。

在里面

一个书签,可让您快速进行回购的首次提交。

总览

能够快速导航到存储库中最旧的提交非常有帮助。继续,将小书签(链接)拖到书签栏上,然后在需要进行第一次回购时单击它。

用法

转到任何特定存储库的登录页面(e.g. like the one you're on),然后单击书签,这将带您到第一页(初始提交)。默认情况下,它会跟踪master分支,但是如果您更改branch登录页面上的,它将转到该分支的首次提交。

取自GitHub上的README.md


免责声明:在发布此答案之前,我在几分钟内对init进行了小幅更新

  • 可悲的是,[不适用于Firefox](https://github.com/FarhadG/init/issues/13)。 (2认同)

Mic*_*rry 7

您可以通过以下内容进入提交的第一页,我将其保留为Chrome开发工具中的一部分。

function githubFirstCommitsPage() {
  let el = document.querySelector('.repository-content');
  let base = el.querySelector('a[data-pjax]').href;
  let count = el.querySelector('.commits .num')
    .textContent
    .trim()
    .replace(/[^\d\.\-]/g, "");
  count = count-36;
  let sha = el.querySelector('.commit-tease-sha')
    .href
    .split('/');
  sha = sha[sha.length-1];
  window.location = `${base}?after=${sha}+${count}`;   
}

githubFirstCommitsPage();
Run Code Online (Sandbox Code Playgroud)


Jos*_*ton 6

此链接提供了一种在 GitHub 上执行此操作的 UI 方法。概括:

  1. “见解”选项卡

  2. 网络选项卡(左侧)

  3. Shift + <--


tho*_*ais 5

您需要使用git log --reversegit命令。

这将以相反的顺序(最旧到最新)返回指定仓库的提交历史。

然后,借助一些sed魔术,您可能会遇到第一次提交的日期(这是我一直看到的自己一直需要的日期)。

git log --reverse | sed -n 3p
Run Code Online (Sandbox Code Playgroud)

最终,你可能想以及(,因为它主要是要么无聊键入命令或只是不可能记住它)自动执行此,因此喜欢的shell脚本这一个可能前来救援。


shi*_*ork 5

你可以使用这个 webapp 快速挖掘第一次提交https://firstcommit.netlify.com/