在这种情况下,交互式变基从结帐开始,出于某种原因,在结帐后设置了 ORIG_HEAD 。您实际上想在 rebase 进行结帐之前与作为 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 指向的提交(git rev-parse ORIG_HEAD
带线。您可以编写一个脚本来执行此操作,但手动找到它并不难。
(你可能认为 ORIG_HEAD^ 会给你你想要的,但这会给你提交历史中 ORIG_HEAD 之前的提交,而不是在你的本地 reflog 中。你想要后者。)