커밋 메시지 에 주어진 단어 가 포함 된 모든 커밋을 찾으려면
$ git log --grep=word
파일 내용 에서 "word"가 추가 또는 제거 된 모든 커밋을 찾으려면 (보다 정확하게 : "word"의 발생 횟수가 변경된 위치) 커밋 내용 검색과 함께 소위 'pickaxe'검색을 사용하십시오.
$ git log -Sword
현대 자식에는 또한
$ git log -Gword
추가 또는 제거 된 행이 "word"와 일치하는 차이점 ( commit contents ) 을 찾습니다 .
참고 -G
기본적으로하면서, 정규식을 받아 -S
문자열을 허용하지만,를 사용하여 정규 표현식에 동의 수정할 수 있습니다 --pickaxe-regex
.
의 차이를 설명하기 위해 -S<regex> --pickaxe-regex
하고 -G<regex>
, A는 같은 파일에 다음 DIFF와 커밋 고려 :
+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);
git log -G"regexec\(regexp"
이 커밋을 표시 하지만 git log -S"regexec\(regexp" --pickaxe-regex
해당 문자열의 발생 횟수가 변경되지 않았기 때문에 그렇지 않습니다.
Git 2.25.1 (2020 년 2 월)을 사용하면 해당 정규 표현식에 대한 설명서가 명확 해집니다.
Martin Ågren의 커밋 9299f84 (2020 년 2 월 6 일)를 참조하십시오 . ( Junio C Hamano 에 의해 합병 -- 커밋 0d11410 , 2020 년 2 월 12 일)
gitster
보고 : Adam Dinwoodie
서명 : Martin Ågren
검토 자 : Taylor Blau
-G
와 -S
(사용 --pickaxe-regex
) 의 차이점을 예시 할 때 git diff
"regexec", "regexp", "regmatch"등의 diff 및 호출 예제를 사용하여 수행합니다 .
예제는 정확하지만 실제로 "regex. *"를 쓰지 않으면 서 쉽게 풀 수 있습니다.
대신 정규식이 아닌 단어를 사용하십시오.
git diff
문서는 이제 포함 :
의 차이를 설명하기 위해 -S<regex> --pickaxe-regex
하고
-G<regex>
, A는 같은 파일에 다음 DIFF와 커밋 고려 :
+ return frotz(nitfol, two->ptr, 1, 0);
...
- hit = frotz(nitfol, mf2.ptr, 1, 0);
git log -G"frotz\(nitfol"
이 커밋을 표시 하지만 git log
-S"frotz\(nitfol" --pickaxe-regex
해당 문자열의 발생 횟수가 변경되지 않았기 때문에 그렇지 않습니다.