커밋 해시가 주어지면 GitHub에서 커밋 찾기


286

나는 Github를 처음 접했고 아마추어 같은 문제를 겪었습니다.

코드 검토를 요청 받았으며 커밋 해시가 제공되었지만 커밋 해시를 사용하여 검색 할 수는 있지만 아무것도 찾을 수 없다면 Git을 살펴 보았습니다.

커밋 해시를 사용하여 변경된 코드를 찾을 수있는 방법이 있습니까?


46
github이 검색에서 해시를 인식하지 못하고 해시와 일치하는 커밋이 있으면 커밋을 표시하는 것이 매우 기괴합니다.
— Craig Ringer

실제로 @CraigRinger, github 검색은 풀 요청에서 발생하면 해시와 일치합니다 . 실제로 원하는 경우 github 전체에서 7 문자 해시 접두사를 검색 할 수 있습니다. 그러나 커밋뿐만 아니라 풀 요청이어야합니다.
— Todd Owen

4
@ToddOwen 어느 것이 좋지만 요점은 아닙니다. 해당 저장소 내에서 검색 할 때 저장소 내 커밋 해시와 일치해야하지만 실제로는 그렇지 않습니다.
— Craig Ringer

2
@CraigRinger 이제 끝입니다! 내 새로운 답변을 참조하십시오 .
— Todd Owen

답변:


378

양식의 URL은 https://github.com/<owner>/<project>/commit/<hash>해당 커밋에 도입 된 변경 사항을 보여줍니다. 예를 들어 다음은 GitHub의 프로젝트 중 하나에 대한 최신 버그 수정입니다.

https://github.com/jerith666/git-graph/commit/35e32b6a00dec02ae7d7c45c6b7106779a124685

다음과 같이 해시를 고유 한 접두사로 줄일 수도 있습니다.

https://github.com/jerith666/git-graph/commit/35e32b


방금 GitHub에 대해 물어 봤지만 완전성을 위해 알고 있습니다. 리포지토리를 체크 아웃하면 명령 줄에서 기본적으로 동일한 명령을 수행 할 수 있습니다 (고유 접두사도 여기에서 작동합니다).

git show 35e32b6a00dec02ae7d7c45c6b7106779a124685
git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685

참고 : 커밋 해시를 너무 짧게하면 명령 줄에 유용한 명확성 메시지가 표시되지만 GitHub는 404 만 반환합니다.


mongo에서 어설 션을 추적하려고 할 때이 문제가 발생했으며 커밋의 해시가 주어지면 특정 파일을 볼 수있는 비슷한 URL 패턴이 있음을 발견했습니다 .github.com / $ owner / $ project / blob / $ hash / path /to/file.ext- 예 : github.com/mongodb/mongo/blob/…
— RubyTuesdayDONO

이러한면에서 : git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685의는 -1그렇지 않으면 모든 olders의 커밋을 보여 것이기 때문에 필요하다 해시에 대한 자동 완성이 없으므로 네 개의 초기 해시 번호 (내 테스트에서 최소값)를 사용할 수 있다는 것을 아는 것이 좋습니다. 다음과 같이 분기를 지정할 수 없습니다 git log master -p -1 35e3. 힘내 버전 : 1.7.9.5.
— Rafael Barros

하나의 obs가 있지만 하나는 매우 중요합니다. 다시 한 번 분기를 지정할 수 없지만 해시를 제공하면 로컬 및 원격 분기를 자동으로 검색합니다. 예, 명령 줄을 사용하여 로컬 저장소에 병합하기 전에 특정 원격 diff를 검색 할 수 있습니다.
— Rafael Barros

1
: 경우 사람이 (! 내가했다) 궁금있어,이 또한 해시의 첫 8 모두 GitHub의에서 작동 github.com/jerith666/git-graph/commit/35e32b6a 및 명령 행에서 :git log -p -1 35e32b6a
— SimplGy

7
UI가 이것을보다 쉽게 ​​만들 수 없다는 것은 바보 같은 일입니다 ... 기능 요청으로 인해 좋을 것입니다.
— ocroquette

49

단일 커밋보기 :
https://github.com/<user>/<project>/commit/<hash>

로그보기 :
https://github.com/<user>/<project>/commits/<hash>

전체 리포지토리보기 :
https://github.com/<user>/<project>/tree/<hash>

<hash> 고유 한 길이이면됩니다.


1
길이가 7 자 이상이면 괜찮습니다
— Kasun Siyambalapitiya

3
커밋 해시의 최소 길이는 4 자입니다 (전체 저장소에서 고유 한 한)
— qwertzguy

21

커밋 을 검색 하는 기능 이 최근 GitHub에 추가되었습니다.

해시를 검색하려면 검색 창에 최소한 처음 7자를 입력하십시오. 그런 다음 결과 페이지에서 "커밋"탭을 클릭하여 일치하는 커밋 (일반적으로 기본 분기에만 해당 master)을 보거나 "문제"탭을 클릭하여 커밋이 포함 된 풀 요청을보십시오.

보다 명확하게 hash:검색에 접두사를 추가 할 수 있지만 실제로는 필요하지 않습니다.

도있다 REST API를 (글을 쓰는 시점은 미리보기에 여전히에서가).


2
실제로 이런 식으로 작동한다는 사실에 놀랐습니다. 너무 직관적이지 않습니다. 기본적으로 Github에는 "코드"탭이 표시되며 결과는 분명히 없습니다. 기본적으로 결과가있는 유일한 탭이 표시되어서는 안됩니까?
— summerian

: 당신이 당신의 자신의 기업이 github에의 설치가있는 경우 그래서, 명확하게하기 위해, 당신은 너무 좋아를 검색하여 상관의 repo에 커밋 찾을 수 있습니다 https://YourGithubDomain/search?q=YOUR_COMMIT_HASH&type=Commits 나뿐만 아니라 Github에서에이 시도하는 것으로, 그것은 예를 들어, 너무 거기에 일 https://github.com/search?q=38db172d13962ea177c00c9a3b4b3169b317e94b&type=Commits
— 브래드 공원
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.