Git 履歴 - キーワードで失われた行を見つける 質問する

Git 履歴 - キーワードで失われた行を見つける 質問する

数百回コミットする前に、Git リポジトリのどこかに「Foo」という単語を含む行がありました。

前回のリビジョン番号を見つける方法はありますか?

ベストアンサー1

それは、つるはし-S)オプションgitlog

 git log -SFoo -- path_containing_change

(時間範囲を追加することもできます--since=2009.1.1 --until=2010.1.1:)

-S<string>

のインスタンスを導入または削除する差異を探します<string>
これは、diff出力に単に現れる文字列とは異なることに注意してください。gitdiffcore(7)詳細については。

diffcore-pickaxe

この変換は、指定された文字列に触れる変更を表すファイルペアを見つけるために使用されます。が使用されている
場合diffcore-pickaxe、指定された文字列が「元の」側にあり、「結果」側にないファイルペアがあるかどうかを確認します。
このようなファイルペアは、「この変更セットに出現した文字列」を表します。
指定された文字列が失われる逆のケースも確認します。


2014年アップデート:

それ以来、あなたは(からニルバス答え):

git log -p --all -S 'search string'
git log -p --all -G 'match regular expression'

これらのログ コマンドは、指定された検索文字列/正規表現を追加または削除するコミットを (通常は) 最新のものから順に一覧表示します。
( ) オプションを使用-pする--patchと、パターンが追加または削除された場所に関連する差分が表示されるため、コンテキスト内で確認できます。

探していたテキストを追加する関連コミット (例: 8beeff00d) を見つけたら、そのコミットを含むブランチを見つけます。

git branch -a --contains 8beeff00d

(私は「特定のコミットを含むブランチを一覧表示するにはどうすればよいでしょうか?

おすすめ記事