在GitHub中,是否有一种简单的方法可以导航到大型开源项目的最早提交?
到目前为止,该项目已经提交了超过13000次。我不想在提交历史页面上无数次地按下“旧”按钮才能到达最初的提交(或第一次提交)。
在GitHub中,是否有一种简单的方法可以导航到大型开源项目的最早提交?
到目前为止,该项目已经提交了超过13000次。我不想在提交历史页面上无数次地按下“旧”按钮才能到达最初的提交(或第一次提交)。
当前回答
没有明显的UI可以做到这一点,但是有一种方法可以构造正确的URL来访问提交日志的第一页。
假设我们想要找到dotnet/coreclr存储库的第一次提交。首先注意存储库中的提交数量:目前是16,634。现在转到提交列表,单击“Older”一次。URL类似于这样:https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34
注意+34部分。这是跳过的提交数。把它改为16,634 - 1 - 35每页,这就得到了这个URL,它会把你带到coreclr提交历史的第一页。
其他回答
仅使用UI的另一个简单技巧是检查.gitignore或README文件的git历史记录。Md, 99%的情况下,你会很快发现第一次提交。
你可以通过下面的代码进入提交的第一页,我把它作为一个代码片段保存在Chrome开发工具中。
function githubFirstCommitsPage() {
let el = document.querySelector('.repository-content');
let commits = el.querySelector('[aria-label^=Commits]');
let base = commits.closest('a').href;
let count = commits.previousElementSibling
.textContent
.trim()
.replace(/[^\d\.\-]/g, "");
count = count-36;
let sha = el
.querySelector('[data-test-selector="commit-tease-commit-message"]')
.href
.split('/');
sha = sha[sha.length-1];
window.location = `${base}?after=${sha}+${count}`;
}
githubFirstCommitsPage();
克隆存储库,用命令行打开并运行$ git log——reverse
这将以相反的顺序显示提交。
一旦你有了第一次提交的ID(对象名),你就可以在github上查看它了…之类的……https://github.com/UserName/Repo/commit/6a5ace7b941120db5d2d50af6321770ddad4779e
没有明显的UI可以做到这一点,但是有一种方法可以构造正确的URL来访问提交日志的第一页。
假设我们想要找到dotnet/coreclr存储库的第一次提交。首先注意存储库中的提交数量:目前是16,634。现在转到提交列表,单击“Older”一次。URL类似于这样:https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34
注意+34部分。这是跳过的提交数。把它改为16,634 - 1 - 35每页,这就得到了这个URL,它会把你带到coreclr提交历史的第一页。
2015年2月:在GitHub中,是否有一种简单的方法可以导航到大型开源项目的最早提交?
是的,现在有了!(意思是:不克隆repo,在本地克隆应用git log)
自2017年1月以来,您可以在GitHub上“使用改进的责备视图更快地导航文件历史记录”。
无论您是在调试回归,还是试图理解某些代码是如何形成当前形状的,您通常都希望看到某个特定更改之前的文件是什么样子。 使用改进的责备视图,您可以轻松查看文件的任何部分是如何随着时间的推移而演变的,而无需查看文件的完整历史记录。
这里是一个演示,返回到git/git回购本身最初的最古老的提交(47K+提交)…点击三下!
这里的技巧是选择一个可能在第一次(或非常早期)提交中找到的文件,比如README.md。