IT story

Github 저장소에서 가장 빠른 커밋으로 이동하려면 어떻게해야합니까?

hot-time 2020. 8. 17. 10:28
반응형

Github 저장소에서 가장 빠른 커밋으로 이동하려면 어떻게해야합니까?


GitHub에서 대규모 오픈 소스 프로젝트의 초기 커밋으로 쉽게 이동할 수있는 방법이 있습니까?

이 프로젝트에는 오늘 현재 13,000 개 이상의 커밋이 있습니다. 초기 커밋 (또는 첫 커밋)에 도달하기 위해 커밋 히스토리 페이지에서 "이전"버튼을 수백 번이나 수백 번 누를 필요가 없습니다.


저장소를 복제하고 명령 줄로 열고 실행합니다. $ git log --reverse

이렇게하면 커밋이 역순으로 표시됩니다.

그런 다음 첫 번째 커밋의 ID (Object Name)가 있으면 github에서 볼 수 있습니다. https://github.com/UserName/Repo/commit/6a5ace7b941120db5d2d50af6321770ddad4779e


이 작업을 수행하는 명확한 UI는 없지만 커밋 로그의 페이지 1로 이동하기위한 올바른 URL을 구성하는 방법이 있습니다.

dotnet / coreclr 저장소 의 첫 번째 커밋을 찾고 싶다고 가정 합니다 . 먼저 저장소의 커밋 수를 기록해 둡니다. 현재 16,634 개입니다. 이제 커밋 목록으로 이동하여 "이전"을 한 번 클릭 합니다. URL은 다음과 같습니다.https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34

통지 +34부분. 이것이 얼마나 많은 커밋을 건너 뛰는 지입니다. 페이지 당 16,634 빼기 1 빼기 35로 변경하면 이 URL이 표시 되며 coreclr 커밋 기록의 첫 번째 페이지로 바로 이동합니다.


2015 년 2 월 : GitHub 에서 대규모 오픈 소스 프로젝트의 초기 커밋으로 쉽게 이동할 수있는 방법이 있습니까?

네, 이제 있습니다! (의미 : 리포지토리 복제 하지 않고git log 로컬 복제에 적용 )

2017 년 1 월부터 GitHub에서 " 개선 된 비난보기로 파일 기록을 더 빠르게 탐색 "할 수 있습니다.

회귀를 디버깅하거나 일부 코드가 어떻게 현재 모양을 갖게되었는지 이해하려고 할 때 특정 변경 전에 파일이 어떻게 생겼는지 확인하고 싶을 것입니다.
개선 된 비난보기를 사용하면 파일의 전체 기록을 보지 않고도 시간이 지남에 따라 파일의 일부가 어떻게 발전했는지 쉽게 확인할있습니다 .

다음은 git / git repo 자체 의 가장 오래된 커밋으로 돌아가는 데모 입니다 (47K + 커밋) ... 세 번의 클릭으로!

데모 git / git

여기서 트릭은 첫 번째 (또는 매우 초기) 커밋에서 찾을 수있는 파일을 선택하는 것 README.md입니다.


nodejs 프로젝트 의 초기 커밋 중 하나를보고 싶었습니다 . 나는 다음을 수행했다.

  1. nodejs 사이트를 방문했습니다 . 그런 다음이 시점에서 총 커밋 수가 약 2 만 3 천 (정확히 23652)임을 관찰했습니다.

여기에 이미지 설명 입력

  1. 다음으로 커밋 링크를 클릭하면 아래와 같이 https://github.com/nodejs/node/commits/master이동 했습니다.

여기에 이미지 설명 입력

  1. 이제 끝까지 아래로 스크롤하여 Newer 및 Older 버튼을 찾았습니다. 최신 버튼이 비활성화됩니다. 이전 버튼을 클릭했고 https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+34이동했습니다.

  2. 이제 URL에 +34가 있습니다. 이제 나는 그것을 23000으로 변경했습니다 (내가 관찰 한 커밋 수가 23000이기 때문에). 그래서 내가 시도한 새 URL은

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

  1. 이제 거의 다 왔습니다. 몇 번 더 반복하거나 이전 버튼 클릭으로 원하는 곳에 도달했습니다.

init bookmarklet을 사용하여 GitHub 저장소의 첫 번째 커밋으로 이동할 수 있습니다 .

INIT

repo의 첫 번째 커밋으로 빠르게 이동 하는 북마크릿 입니다.

개요

리포지토리에서 가장 오래된 커밋으로 빠르게 이동할 수 있다는 것은 매우 유용합니다. 계속해서 북마크릿 (링크) 을 북마크 바로 드래그하고 저장소의 첫 번째 커밋으로 이동하고 싶을 때마다 클릭하세요.

용법

특정 저장소의 랜딩 페이지 (e.g. like the one you're on)로 이동하여 북마크릿을 클릭하면 첫 번째 페이지 (초기 커밋)로 이동합니다. 기본적으로 master분기를 추적 하지만 branch랜딩 페이지에서 를 변경하면 해당 분기의 첫 번째 커밋으로 이동합니다.

GitHub의 README.md에서 검색


면책 조항 : 나는 이 답변을 게시하기 몇 분 전에 작은 Readme 업데이트를 제공하여 초기화 했습니다.


git log --reversegit 명령 을 사용해야합니다 .

이렇게하면 지정된 리포지토리에 대한 커밋 내역이 역순 (오래된 것에서 최신으로)으로 반환됩니다.

그런 다음 약간의 sed마법 의 도움으로 첫 번째 커밋의 날짜와 같은 것을 가질 수 있습니다 (제가 항상 제 자신을 위해 필요했던 것입니다).

git log --reverse | sed -n 3p

궁극적으로, 당신은 (는 대부분 중 명령을 입력 지루하거나 기억하기 단지 불가능하기 때문에,)와 같은 쉘 스크립트, 그래서뿐만 아니라이 문제를 자동화 할 수 있습니다 이 하나가 구조에 올 수 있습니다.


다음을 사용하여 커밋의 첫 번째 페이지로 이동할 수 있습니다.이 페이지는 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();

참고 URL : https://stackoverflow.com/questions/28533602/how-do-i-navigate-to-the-earliest-commit-in-a-github-repository

반응형