したがって、foo.rbというファイルがあり、 barという名前のメソッドが見つからないためにエラーが発生する場合は、 foo.rbの履歴で文字列bar
を検索して、過去に定義されたことがあるかどうかを確認します。
私はこれを見つけましたGitのすべての履歴で文字列を検索しますか?
しかし、これはすべてのファイルを検索します。1つのファイルで検索したいだけです。
したがって、foo.rbというファイルがあり、 barという名前のメソッドが見つからないためにエラーが発生する場合は、 foo.rbの履歴で文字列bar
を検索して、過去に定義されたことがあるかどうかを確認します。
私はこれを見つけましたGitのすべての履歴で文字列を検索しますか?
しかし、これはすべてのファイルを検索します。1つのファイルで検索したいだけです。
この目的のために、-Sオプションを使用してログをgitできます。
git log -S'bar' -- foo.rb
または、これを試すことができます(関連する質問からすべてのgit履歴で文字列を検索してください)
git rev-list --all foo.rb | (
while read revision; do
git grep -F 'bar' $revision foo.rb
done
)
実際にはファイルの内容を検索し、barが発生した場合はメッセージ/パッチをコミットしません。
git logコマンドにはオーバーライドがあります(手動から):
$ git log Makefile # commits that modify Makefile
したがって、次を使用できます。
git log foo.rb | grep "bar"
git log -S "string" --follow -p "path of file"
その文字列でのすべての変更の完全な履歴を表示するものを使用
しました。