最近、私のチームで、新入社員が git pull を試みたことがありました。システムにいくつかの競合が発生した後、開発者は単純に git リセット (インデックスを最後の HEAD に移動) を行いました。次に、開発者は 1 つのファイルの変更を「コミット」し、それをリモートにプッシュしました。当然、かなり多くの変更が失われました。
しかし、誰が悪い変更を行ったのか (そしてどのコミットが悪いコミットだったのか) を突き止めるのにかなりの時間がかかり、それを回復することはまったく別の努力でした。git履歴(gitkまたはgitログを使用)では、gitはコミットされたファイルのみを表示しますが、これは以前のファイルを上書きする場合です(この概念はgitではなくCVSに近いことを知っています。この場合、ファイルは以前のコミットに移動されています)。この場合、デバッグするのに最適な戦略は何ですか?
どのブランチが問題を起こしているかがわかったら、良いコミットと悪いコミットの間で git diff を実行すると、ファイルのリストが表示されますが、特定のコミットだけを見ると、以前のコミットに移動されたファイルを見つけることができます。
問題が完全に解明されていない場合は、お詫び申し上げます。