따라서 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"
해당 문자열에 대한 모든 변경 사항의 전체 기록을 보여주는 사용했습니다
.