13

ファイルを修正し、gitリポジトリにコミットしました。

しばらくして、それが後退していることに気づきました。どのコミットで修正が行われたか知りたかったので、 と を試してみましたgit bisectgit log --all -S TERMここで、「TERM」は修正によって追加された文字列で、プロジェクトのどこにも表示されませんでした。

無関係なコミットをgit bisect非難し、git log --all -S TERMTERM を追加したコミットのみをリストし、「マスター」のファイルに存在しなくなったにもかかわらず、それを削除したコミットをリストしていないことがわかりました。

手動で検索した後、2 つのブランチ間でマージ コミットがあったことがわかりました。1 つのブランチには修正があり、1 つのブランチには修正がありませんでした。マージ作成者は、私の修正なしでブランチを選択しました (ファイルに競合がなかったため、奇妙です)。

私の質問は次のとおりです。

  • git bisectマージの変更が見つからないのはなぜですか? この制限に関するマンページには何も表示されません。上記のシナリオで悪いマージを見つける別の使用方法はありますか?
  • git log --all -S TERMマージコミットをリストしないのはなぜですか? マンページには、「のインスタンスを導入または削除する」コミットがリストされていると書かれています。そのマージコミットは私の文字列を削除しませんか? 上記のシナリオで悪いマージを見つける別の使用方法はありますか?
  • git bisect上記のシナリオでとgit log -Sが役に立たない場合、悪いマージを見つける効率的な方法は何ですか? これらのツールなしで問題の変更を追跡するには、かなり時間がかかります。
4

2 に答える 2