GitHub : 이전 버전의 파일 검색


98

GitHub를 사용하면 리포지토리에서 내 파일의 현재 버전을 모두 검색 할 수 있습니다. 그러나 내 repo 파일의 이전 버전을 검색하고 싶습니다. 예를 들어, 내 코드에 get_info ()라는 함수가 있었지만 여러 버전 전에 삭제했는데 get_info를 검색하여 코드를 찾을 수 있습니다. GitHub를 사용할 수없는 경우 git 명령 줄에서 가능합니까?

편집하다

git 명령 줄에서이 작업을 수행하는 방법을 보여준 @Mark Longair에게 감사드립니다. GitHub에서 가능하지 않다면 훌륭한 기능이 될 것입니다.

답변:


121

현재로서는 github 웹 사이트에있는 저장소 코드의 전체 기록 내에서 검색하는 것이 가능하지 않다고 생각합니다. 가장 가까운 것은 이 페이지 의 "코드 검색"옵션을 사용하여 저장소의 현재 코드 내에서 검색하는 것 입니다.

그러나 명령 줄 get_info에서 -S옵션으로 언급 된 줄을 도입하거나 제거한 커밋을 찾을 수 있습니다 git log. 예 :

git log -Sget_info -p

(nb -S와 검색어 사이에 공백이 없어야합니다. )

(또한 참고 : 두 개 이상의 단어를 검색하려면으로 묶으십시오 ') :

git log -S'get info' -p

따라서 최소한 함수가 처음 도입 된 커밋과 제거 된 커밋을 찾아야합니다. -p많은 커밋이 도움이 될 수있는 기능을 언급 한 변경 사항을 도입 한 경우 패치를 볼 수도 있도록을 추가했습니다 . 함수가 다른 분기에만있는 경우 --all모든 분기를 검색 하는 데 사용 하는 것도 유용 할 수 있습니다 .

Jefromi 는 아래의 주석에서 git 1.7.4가 -G대안으로 옵션을 도입 할 것이라고 지적했습니다. 이 변경 사항은 Junio ​​Hamano (git 유지 관리자)의 최근 블로그 게시물에 요약되어 있습니다. http://gitster.livejournal.com/48191.html


2
예, 주석을 검색 할 수 있다는 것을 알고 있지만 코드 검색은 어떻습니까?
normski

10
-S 옵션 코드를 살펴 봅니다 get_info. 커밋이 도입 한 diff에 포함 된 모든 커밋을 찾습니다 . --grep로그 메시지를 검색하는 옵션 과 혼동 될 수 있습니다 .
Mark Longair 2011 년

2
@normski : 그리고 최신 버전의 git에는 -G고정 된 문자열 대신 정규식을 사용하는 유사한 옵션 이 추가되었습니다 .
Cascabel 2011 년

@Jefromi : 말씀해 주셔서 감사합니다. 답변에 추가했습니다. 괜찮기를 바랍니다.
Mark Longair 2011 년

2
@Anthony 미코 : 예, 바로 검색 문자열, 예를 들어, 인용git log -S'get info' -p
마크 Longair
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.