概要
次のツイートを見て便利そうだと思った。
これは本当にとても便利なgitのログ機能なんですが、 `git log -L :関数名:ファイル名` でその関数の履歴が見れます pic.twitter.com/wcul1OYr0W
— ほぼろ (@rhoboro) May 22, 2019
どうやら
git log -L :<関数名>:<ファイルパス>
という形式で特定の関数の変更履歴が見られるらしい。
このツイートでは Python の関数の変更履歴を表示していたが、Ruby のメソッドでもできるか試してみた。
例
試しに Active Support コア拡張機能の String#truncate の変更履歴を確認してみる。ローカルに Rails のリポジトリを git clone して、次の git コマンドを実行する。
git log -L :truncate:activesupport/lib/active_support/core_ext/string/filters.rb
本当に truncate のログと差分だけ表示された!メソッドの変更を追跡するのにファイルごとだと粒度が大きいので、メソッドごとに表示できるのは便利だ ☺️