この場合、対話型リベースはチェックアウトを実行することから始まり、何らかの理由で ORIG_HEAD がチェックアウト後に設定されます。実際には、リベースがそのチェックアウトを行う前に HEAD であったコミットと比較したいと考えています。reflog で見つけることができます。
git reflog
先頭に最も近いチェックアウトを探し、次の行のコミットと比較します。reflog が次のようになっている場合:
ec4bd97 HEAD@{0}: rebase -i (finish): returning to refs/heads/big_cat_branch
ec4bd97 HEAD@{1}: rebase -i (fixup): Divide the bug class into modules
5d62142 HEAD@{2}: rebase -i (fixup): updating HEAD
c28c562 HEAD@{3}: checkout: moving from big_cat_branch to c28c562
7f6bc0e HEAD@{4}: commit: Fix bug related to big cats.
次に、次のように差分します。
git diff HEAD 7f6bc0e
また
git diff HEAD HEAD@{4}
また、インタラクティブなリベースによってコード内の何かが実際に変更されない限り、出力は期待できません。
reflog からそのエントリを取得できればいいのですが、ORIG_HEAD が指すコミットを取得し ( with git rev-parse ORIG_HEAD)、reflog でそれを grep し、次を確認する以外に簡単な方法はわかりません。ライン。それを行うスクリプトを作成することもできますが、手動で見つけるのは難しくありません。
(ORIG_HEAD^ が必要なものを提供すると思うかもしれませんが、ローカルの reflog ではなく、コミット履歴で ORIG_HEAD より前のコミットが得られます。後者が必要です。)