在GitHub中,有一种简单的方法可以导航到最早的大型开源项目提交吗?
截至今天,该项目已提交超过13,000份。我不想要按下"老年人"提交历史记录页面上的按钮数百次,数百次,以进入初始提交(或第一次提交)。
答案 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 +提交)的原始最早提交......三次点击!
这里的诀窍是选择一个可能在第一次(或非常早)的提交中找到的文件,如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
,它将转到该分支的首次提交。
免责声明:我在发布此答案前几分钟提供了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方法。摘要:
“洞察”标签
“网络”标签(左侧)
Shift + <-
答案 7 :(得分:0)
您可以使用此Web应用程序快速挖掘出第一次提交https://firstcommit.netlify.com/