ファイルを修正し、git
リポジトリにコミットしました。
しばらくして、それが後退していることに気づきました。どのコミットで修正が行われたか知りたかったので、 と を試してみましたgit bisect
。git log --all -S TERM
ここで、「TERM」は修正によって追加された文字列で、プロジェクトのどこにも表示されませんでした。
無関係なコミットをgit bisect
非難し、git log --all -S TERM
TERM を追加したコミットのみをリストし、「マスター」のファイルに存在しなくなったにもかかわらず、それを削除したコミットをリストしていないことがわかりました。
手動で検索した後、2 つのブランチ間でマージ コミットがあったことがわかりました。1 つのブランチには修正があり、1 つのブランチには修正がありませんでした。マージ作成者は、私の修正なしでブランチを選択しました (ファイルに競合がなかったため、奇妙です)。
私の質問は次のとおりです。
git bisect
マージの変更が見つからないのはなぜですか? この制限に関するマンページには何も表示されません。上記のシナリオで悪いマージを見つける別の使用方法はありますか?git log --all -S TERM
マージコミットをリストしないのはなぜですか? マンページには、「のインスタンスを導入または削除する」コミットがリストされていると書かれています。そのマージコミットは私の文字列を削除しませんか? 上記のシナリオで悪いマージを見つける別の使用方法はありますか?git bisect
上記のシナリオでとgit log -S
が役に立たない場合、悪いマージを見つける効率的な方法は何ですか? これらのツールなしで問題の変更を追跡するには、かなり時間がかかります。