커밋 해시가 주어지면 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.