lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

Gitで過去のコミットからコードを検索したい

概要

迷子のクラスがあって過去に使用されていたんじゃないかな?くらいまではわかってるけど実際にコードみたい!みたいな時に使えそう。
てか実際、今日使いました。

目次

参考サイト様

Git logでgrep

git logコマンドに-pつけて差分をすべて表示させるようにする。
それでパイプで渡してgrepで検索みたいな感じです。
※ファイル指定じゃないとログの量が多すぎてエラーになるのでリポジトリ全体のコミットログから漁る場合はrev-list + git grepを使う。

$ git log -p <FILENAME> | grep 検索文字列

これでなにか引っかかればgrep-Cオプションをつけて前後のログも確認。

補足

これは見たいコードがこのファイルに存在していたはず!とある程度あたりがついてる場合のアレです。
リポジトリ全体の検索はrev-list + git grepを使う。
ただ、今回作業していたWindows + Git bashの環境ではリポジトリ全体に対する検索は結果が返ってこなかったのでいろいろ推理(名探偵)してあたりを付けてからファイル単品のgit logを検索した感じです。

雑感

転職してから全然時間の余裕がなくて笑う。
仕事が原因ではなく一人暮らしが初めてで家事に足を引っ張られて時間をなかなか作れないから。
コードいろいろ集中して書きたいんだけれども...

ただ、ネットもまだ開通してないのでローカルでちまちまやるしかないんですがね。
わからないことをすぐに調べられないストレスマッハ。