GitHub 리포지토리에서 첫 번째 커밋 날짜를 어떻게 찾을 수 있습니까?


45

GitHub 리포지토리가 주어지면 첫 번째 커밋 날짜를 어떻게 빨리 찾을 수 있습니까?

나는 종종 프로젝트의 나이를 알고 싶지만 커밋 히스토리가 매우 긴 프로젝트의 커밋 히스토리를 시작하는 빠른 방법을 찾을 수 없습니다.


1
SO에 대한 스레드 도움이 될 수있는 첫 공연 '자식 로그'에 의해 저지하는 방법 과 같은 git log --reverse가장 최근에 이른에서 커밋을 보여줍니다
batpigandme

답변:


46

가장 오래된 커밋을 보려는 리포지토리의 "통찰"탭을 클릭 한 다음 왼쪽 메뉴 표시 줄의 "네트워크"하위 탭을 클릭하십시오. 페이지가 완전히로드되면 (즉, 많은 줄이 합쳐지고 모두 볼 수 있음) Shift+ 를 눌러 첫 번째 커밋으로 끝까지 이동합니다. 첫 번째 커밋을 나타내는 점을 클릭하면 얻을 수 있습니다.

참고 : 이것은 원래 GitHub에서 생성 된 리포지토리에만 적용되며 다른 위치에서 가져온 리포지토리 (GitHub 자체를 통해 등록되지 않은 커밋)는 아닙니다. 또한 저장소에 포크가 너무 많으면이 방법이 반드시 작동하지 않을 수도 있습니다.

또는 리포지토리를 로컬 컴퓨터에 복제하고 다음 명령을 실행할 수 있습니다.

git log --reverse

그러면 저장소의 커밋이 역순으로 표시됩니다 (가장 오래된 커밋이 먼저).


4
저장소에 포크가 너무 많으면 작동하지 않습니다.
Mike McKay

3
"네트워크"는 "그래프"사이드 탭 아래에 있습니다 (예를 들어)
Jedidja

기본 브랜치에 가장 빠른 커밋이 없으면 작동하지 않습니다.
그만해라 모니카

스택 오버플로에 대해서도 비슷한 질문 이 있습니다 . 이 답변을 교차 게시 하시겠습니까?
Stevoisiak

-1--reverse제한은 필터보다 먼저 발생하기 때문에 가장 오래된 커밋을 얻는 데 작동하지 않습니다 .
Quolonel 질문

14

리포지토리를 복제 한 경우 평상시처럼 git 명령을 사용하십시오.

// cd to repo
$ git log --reverse

커밋 기록을 역순으로 표시합니다. LOL.-


13

Hydra의 답변 은 포크가 많은 프로젝트에서 작동하지 않을 수 있습니다. " 네트워크 그래프를로드 할 수 없습니다. 표시 할 포크가 너무 많습니다. "

'그래프'에서 '기여자'탭을 확인할 수 있습니다.

"그래프"의 "기여자"탭


브러시를 사용하여 그래프의 가장 왼쪽 가장자리를 선택한 다음 첫 번째 커미터에 대한 # 커밋을 클릭하면 실제로 커밋이 표시됩니다.
Gordon

별로 도움이되지 않는 @Gordon, 그것은 단지 그 사람에 대한 모든 커밋을 보여줍니다
Steven Penny

@StevenPenny, 문제는 첫 번째 커밋 날짜를 얻는 방법이었습니다. 물론, 지저분하지만 가장 왼쪽 가장자리 만 선택하면 첫 번째 커밋이 표시됩니다. 아래 답변에 링크 된 전용 사이트를 선호합니다 .
Gordon

기본 브랜치에 가장 빠른 커밋이 없으면 작동하지 않습니다.
그만해라 모니카

이것은 최고입니다
Code Whisperer

1

마지막 페이지가 나타납니다.

#!/bin/sh
url=https://github.com/$1/$2/commits?page=
up=1
while :
do
  printf '%s%d\t' $url $up
  if wget -q --spider $url$up
  then
    echo OK
    lw=$up
    up=$((up * 2))
  else
    echo Not Found
    break
  fi
done
while :
do
  k=$(((lw + up) / 2))
  if [ $k = $lw ]
  then
    break
  fi
  printf '%s%d\t' $url $k
  if wget -q --spider $url$k
  then
    echo OK
    lw=$k
  else
    echo Not Found
    up=$k
  fi
done

예:

$ github.sh jp9000 OBS
https://github.com/jp9000/OBS/commits?page=1    OK
https://github.com/jp9000/OBS/commits?page=2    OK
https://github.com/jp9000/OBS/commits?page=4    OK
https://github.com/jp9000/OBS/commits?page=8    OK
https://github.com/jp9000/OBS/commits?page=16   OK
https://github.com/jp9000/OBS/commits?page=32   OK
https://github.com/jp9000/OBS/commits?page=64   OK
https://github.com/jp9000/OBS/commits?page=128  Not Found
https://github.com/jp9000/OBS/commits?page=96   Not Found
https://github.com/jp9000/OBS/commits?page=80   Not Found
https://github.com/jp9000/OBS/commits?page=72   OK
https://github.com/jp9000/OBS/commits?page=76   OK
https://github.com/jp9000/OBS/commits?page=78   OK
https://github.com/jp9000/OBS/commits?page=79   OK

출처


1

다음은 GitHub에서 첫 번째 커밋 만 검색하여 커밋 내역이 길고 포크가 너무 많은 문제를 피하는 사이트입니다.

http://first-commit.com/

해커 뉴스에 대한 토론 .

... 이것은 단지 웹 사이트를 긁어 내고 이동할 페이지를 계산한다는 것입니다. API를 사용하는 것이 훨씬 좋습니다.


1
기본 브랜치에 가장 빠른 커밋이 없으면 작동하지 않습니다.
그만해라 모니카

0

unix sed 도구를 사용하여 첫 번째 커밋 날짜 만 필터링 할 수 있습니다.

git log --reverse | sed -n -e "3,3p" 

꼭 필요한 것 같아요.


-1

GitHub 인터페이스 자체에서이를 수행 할 수있는 방법이 있습니다.

프로젝트 페이지로 이동하여 여기에 표시된대로 탭과 하위 Code탭을 차례로 선택 Commits하십시오.

여기에 이미지 설명을 입력하십시오

커밋 목록으로 이동합니다. 그런 다음 페이지 하단으로 스크롤하면 Older버튼 을 클릭하여 시간을 거슬러 올라갈 수 있습니다 .

커밋이 오름차순으로 표시되도록 정렬하는 방법을 찾지 못했습니다.


10
나는 이미 알고 있었다. 문제는 커밋 내역이 매우 긴 프로젝트에 대한 것이었다 .
Randomblue

-2
git log --reverse --format="format:%ci" | sed -n 1p

명령 행에서 가져 오려면

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.