Pickaxe — 공간 아니라 시간 가로질러 검색
Grep 은 working tree — 지금 존재하는 것 — 검색. git log -S 와 git log -G, 'pickaxe' flag 는 모든 history 가로질러 검색: 어느 commit 이 이 문자열을 어떤 파일이든 어디든 도입했나 / 제거했나. 진짜 '우리 X 기능 ship 한 적 있어?' 또는 '이 magic 상수 언제 처음 등장?' 질문에 처음 쓰면 cheating 같은 기분. History 가 검색 가능하다는 걸 내재화하면 ad-hoc 고고학이 몇 초 답이 돼.
-S "term" 은 정확히 그 term 의 카운트가 바뀐 commit 찾기 — 즉 term 이 추가되거나 제거됨. 특정 식별자, 함수 이름, 환경 변수, magic 문자열 추적에 최고. -G "regex" 는 변경된 줄 어디든 regex 매칭하는 commit 의 diff 찾기. 더 느슨, 'JSON config 건드린 commit' 같은 패턴에 좋음. 둘 다 default 로 모든 history 검색, -- <path> 로 디렉토리/파일에 스코프.
Workflow 완성하는 flag 는 -p — 매칭 commit 의 실제 diff 인라인 표시. git log -p -S "OAUTH_ENABLED" 가 OAUTH_ENABLED 가 codebase 에 진입한 commit + 동시에 같이 바뀐 다른 거의 주변 맥락 보여줌. --all 로 현재 아닌 모든 branch 검색, --source 로 각 매치 가 어느 ref 에서 왔는지 라벨링.
구조적 사촌: git log --grep="auth" 가 diff 아니라 commit 메시지 검색. Commit 이 대충 뭐라 했는지 기억할 때 유용. --author="Pippa" 가 author 필터. --since="2026-04-01" --until="2026-05-01" 가 날짜 범위. Pickaxe + grep + author + 날짜 필터가 자연스럽게 layer — 지난 분기 특정 author 가 특정 식별자 건드린 모든 commit, 한 query 로.