2012-12-14 12 views

答えて

11

使用git grep

git grep "string" $(git rev-list --all) 

git rev-list --allは、それがプロジェクトの全体の履歴を検索できます。上記git grep "string"バリエーションがあなたを与えている場合は、「

git branch --contains <commit> 
+0

1つのファイル/パスのみを検索するように指定できますか? (例:特定のフィクスチャを探していて、このパスで検索したいだけです) –

+1

はい: 'git grep" string "$(git rev-list --all) - パス'。 – jszakmeister

+7

これは大きな歴史のためには機能しません:( 'git grep 'abc' echo $(git rev-list --all)' 'zsh:引数リストが長すぎます:git' – tback

1

ブランチをgit branch "branch-name"に変更してから、git grep "specific string"をリポジトリルートに変更してください。あまりにも多くの枝を持っていない場合、これはあなたをすぐにそこに連れて行くでしょう。コミット見つけること

1

:このような出力与える

:次にあなたがコミット実行された分岐を見つけるためにgit branch --containsを使用することができます

<commit>:<path>:<matched line> 

が上であります長すぎるエラーを一覧表示する場合は、代わりにgit log -Sを使用できます。 -Sオプションは、コミットされたファイルの内容を検索します(「プロのGit」の本の中でもっと"searching"下)

git log -Sstring # look for string in every file of every commit 
git log -Sstring -- path/to/file # only look at the history of the named file 

関連する問題