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

时间:2015-02-16 02:12:45

标签: github

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

截至今天,该项目已提交超过13,000份。我不想要按下"老年人"提交历史记录页面上的按钮数百次,数百次,以进入初始提交(或第一次提交)。

8 个答案:

答案 0 :(得分:64)

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

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

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

答案 1 :(得分:40)

  

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

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

自2017年1月起,您在GitHub上有“Navigate file history faster with improved blame view”。

  

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

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

demo git/git

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

答案 2 :(得分:37)

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

假设我们想要找到dotnet/coreclr repository的第一个提交。首先记下存储库中的提交数量:目前为16,634。现在转到提交列表,然后单击“旧”一次。 URL将如下所示:public enum Sports{ @JsonProperty("FOOTBALL") FOOTBALL("FOOT BALL"), //enum value @JsonProperty("BasketBALL") BasketBALL("Basket BALL"), private String name; DisbMethodCode(String name) { this.name = name; } }

注意https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34部分。这就是跳过了多少次提交。将其更改为16,634减去每页减去35减35,这样我们就可以this URL,它可以直接转到coreclr提交历史的第一页。

答案 3 :(得分:5)

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

  

INIT

     

一个bookmarklet可以快速到达第一次回购提交。

     

概述

     

能够快速导航到回购中最早的提交是非常有帮助的。继续将bookmarklet (link)拖到书签栏上,只要您想要第一次提交回购邮件,请点击它。

     

用法

     

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

     

<子> Retrieved from README.md on GitHub

免责声明:我在发布此答案前几分钟提供了small Readme update to init

答案 4 :(得分:4)

您需要使用git的git log --reverse命令。

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

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

git log --reverse | sed -n 3p

最终,您可能还希望自动执行此操作(因为键入命令通常很无聊,或者根本无法记住它),因此像this one这样的shell脚本可能可以解决。

答案 5 :(得分:3)

您可以使用以下内容进入提交的第一页,我将其作为摘录保留在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();

答案 6 :(得分:3)

This link提供了一种在GitHub上执行此操作的UI方法。摘要:

  1. “洞察”标签

  2. “网络”标签(左侧)

  3. Shift + <-

答案 7 :(得分:0)

您可以使用此Web应用程序快速挖掘出第一次提交https://firstcommit.netlify.com/