2011-12-09 9 views
4

私のプロジェクトのどこかに "Rental"という単語を含むコード行を導入したコミットを探しています。そのフレーズを含む行が導入されたコミットのためにすべてのブランチを検索するにはどうすればよいですか?すべてのブランチでコード変更を検索する

答えて

12
git log --branches -S "Rental" 

また、タグ、リモートブランチとあなたの最初のスタッシュが含まれます代わりに--branches--all、使用することができます。

+0

唯一の問題は、変更を含むコミットだけが表示されていることです。まだ、どのブランチが稼働しているか把握しようとしていますか? – Greyson

+1

質問は「コミットを探しています」と言いますが、下に示すように、コミットが識別された後に 'git branch -contains 'を使うことができます。 – dahlbyk

1

はこれを試してみてください:

git log -Srental --all --pretty=oneline 
+0

"致命的:ソースツリーを読み取れません..." – babonk

2

あなたは何かが導入されていることを「初めて」を探しているので、あなたはgit bisectの代わりをしようとする場合があります。それはあなたがどこにいるか分かれるまで、 "ここにはない"と "それは間違いない"と設定して、別のコミットであなたを下ろします( "ここにいる?")。また、盲目的には線形に履歴を調べるのではなく、バイナリツリーを検索しているかのようにツリーをバイセクトにすることもあります。

これは、全履歴grepよりも少し遅いですが、一般的に他のものの「最初の時間」を追跡しようとするとより便利です。主な使用事例は「このバグが初めて起こったのはいつか」です。

それで、git branch --contains <commit>を使ってどのブランチにコミットが含まれているのか分かります。

関連する問題