2011-04-19 11 views
12

これは簡単な方法はないと思いますが、私は確信するようにと思いました。gitでコードが変更されたときを探す

重要な行が削除されたコードがあります(私自身)。私は、私が間違ってその行を削除したことを知りたいと思っていました。私がそれを行うために見つけることができる唯一の方法は、行が変更された場所でコミットが見つかるまで、その後の以前のコミットでgit "diff'ing"を開始することでした。

コードの特定の部分が変更されたことを確認する簡単な方法はありますか?

答えて

24

行を変更または追加した場合はもちろん、git blameを使用することもできます。あなたがラインを完全に削除しただけであれば、それはもちろんあなたを助けません。

削除された行のテキストの少なくとも一部が分かっていた場合は、「pickaxe」オプションをgit logに使用して、検索しているコミットを制限することができます。

など。

git log -S"important phrase" -p -- <file> 
5

git log -pあなたが検索したり、スクロールができることを、あなたの差分との完全なログを提供します。

git bisectは、検索のためのツールサポートを提供します。行がある場合は遠いところから開始し、行がある場合はgit bisect good、そうでない場合はgit bisect badとします。最終的に、Gitは削除されたコミットに集中します。

+0

私はbisectが欠けているか悪いコードを見つけるための最良の答えだと思います。 – cmcginty

+0

ポイントは、バイナリ検索を行い、ユーザーがリニアスキャンや手動バイナリ検索をする必要がないということです。 – Novelocrat

関連する問題