단일 파일 히스토리에서 문자열 검색 대한 foo.rb

따라서 foo.rb 라는 파일이 있고 bar 라는 누락 된 메서드에 대한 오류가 발생 하면 문자열 에 대한 foo.rb 기록을 검색 bar하여 과거에 정의 된 적이 있는지 확인하고 싶습니다 .

Git 히스토리 모두에서 문자열을 찾았 습니까?

그러나 이것은 모든 파일을 검색합니다. 하나의 파일로 검색하고 싶습니다.



답변

이를 위해 -S 옵션을 사용하여 로그를 git 할 수 있습니다.

git log -S'bar' -- foo.rb

답변

또는 아마도이 질문을 시도 할 수 있습니다 (관련 질문에서 모든 git history for string 검색 )

git rev-list --all foo.rb | (
    while read revision; do
        git grep -F 'bar' $revision foo.rb
    done
)

실제로 파일 내용을 찾고 bar 발생에 대해 메시지 / 패치를 커밋하지 않습니다.


답변

git log 명령에 대한 재정의가 있습니다 ( manual ).

$ git log Makefile      # commits that modify Makefile

그래서 당신은 사용할 수 있습니다 :

git log foo.rb | grep "bar"

답변

git log -S "string" --follow -p "path of file"해당 문자열에 대한 모든 변경 사항의 전체 기록을 보여주는 사용했습니다
.