Git の全履歴からコードを検索する
Git の全履歴の中から、ある文言を含むコードを検索する方法。
$ git grep 【キーワード】 $(git rev-list --all)
まず、$ git rev-list --all
で、全てのコミットのハッシュを取得できる。つまりこのハッシュに含まれるコードの中から git grep
を使って対象のキーワードを検索する、というワケだ。
結果は以下のように表示される。
# 「create.*」を含むコードを調べる
$ git grep create.* $(git rev-list --all)
f0cfadabd5da113b45602934eddc0eb8382a1ca8:src/news.ts:const hoge = createHoge();
98283f71b2dca2a8446913c47a378acbe86ca2c9:src/user.js:createHoge().something();
「コミット ID」「:
(コロン)」「ファイル名」「:
」「該当するコード行」という形式。
検索キーワードには正規表現も使えるのでオススメ。