Git Grep
- 기본적으로 대상을 지정하지 않으면 워킹 디렉토링에서 파일을 찾습니다. -n이나 --line-number 옵션을 추가하면 라인 번호도 같이 출력됩니다.
-
$ git grep -n gmtime_r compat/gmtime.c:3:#undef gmtime_r compat/gmtime.c:8: return git_gmtime_r(timep, &result); compat/gmtime.c:11:struct tm *git_gmtime_r(const time_t *timep, struct tm *result) compat/gmtime.c:16: ret = gmtime_r(timep, result); compat/mingw.c:826:struct tm *gmtime_r(const time_t *timep, struct tm *result) compat/mingw.h:206:struct tm *gmtime_r(const time_t *timep, struct tm *result); date.c:482: if (gmtime_r(&now, &now_tm)) date.c:545: if (gmtime_r(&time, tm)) { date.c:758: /* gmtime_r() in match_digit() may have clobbered it */ git-compat-util.h:1138:struct tm *git_gmtime_r(const time_t *, struct tm *); git-compat-util.h:1140:#define gmtime_r git_gmtime_r
- -c 또는 --count 옵션을 이용해서 몇 개를 찾았는지 알 수 있습니다.
-
$ git grep --count gmtime_r compat/gmtime.c:4 compat/mingw.c:1 compat/mingw.h:1 date.c:3 git-compat-util.h:2
- -p 또는 --show-function 옵션을 이용하여 매칭되는 라인이 있는 함수나 메서드를 찾을 수 있습니다.
-
$ git grep -p gmtime_r *.c date.c=static int match_multi_number(timestamp_t num, char c, const char *date, date.c: if (gmtime_r(&now, &now_tm)) date.c=static int match_digit(const char *date, struct tm *tm, int *offset, int *tm_gmt) date.c: if (gmtime_r(&time, tm)) { date.c=int parse_date_basic(const char *date, timestamp_t *timestamp, int *offset) date.c: /* gmtime_r() in match_digit() may have clobbered it */
- --break와 --heading을 옵션을 이용하면 더 읽기 쉬운 형태로 출력됩니다.
- git grep 명령은 grep이나 ack보다 더 빠릅니다.
Git 로그 검색
- -S 옵션을 이용해서 해당 문자열이 추가되거나 변경된 커밋만 검색할 수 있습니다.
-
$ git log -S ZLIB_BUF_MAX --oneline e01503b zlib: allow feeding more than 4GB in one go ef49a7a zlib: zlib can only process 4GB at a time
라인 로그 검색
- -L 옵션을 이용하여 어떤 함수나 라인의 히스토리를 볼 수 있습니다.
-
$ git log -L :git_deflate_bound:zlib.c
- git_deflate_bound 함수의 모든 변경 사항을 볼 수 있습니다.
'GIT > Git 도구' 카테고리의 다른 글
[GIT] Git Reset과 Checkout 쉽게 이해하기 (1) | 2024.03.18 |
---|---|
[GIT] 히스토리 편집하기 (0) | 2024.03.18 |
[GIT] 작업에 서명하기 (0) | 2024.03.18 |
[GIT] Stashing과 Cleaning (0) | 2024.03.11 |
[GIT] 대화형 명령 (0) | 2024.03.11 |