自那以后改了什么
你审阅过一个分支。有人对它做了变基(rebase)并强制推送。此时普通的差异(diff)已经毫无价值:变基之后每一个提交都是新提交,所以看上去什么都是新的。
git range-diff 会把两个版本逐个提交地配对起来,而 Gitcito 直接从 reflog 里读出旧的位置——所以这件事根本不需要事先记录任何东西就能成立。

| 判定 | 含义 |
|---|---|
| 已重写 | 同一个提交,内容变了。展开它就能看到 interdiff——只有那处消息润色和多加的那次检查,而不是整个文件。 |
| 新增 | 你上次看过之后加进来的。 |
| 已丢弃 | 你上次看过之后消失的。 |
| 未改动 | 在这次重写中原封不动地活了下来。 |
怎么打开它
- 一次获取(fetch)如果发现历史被重写,会告诉你。 提示会点出分支的名字,它在「远程」下的那一行会多出一个 ⟳,点一下就能在它原先所指向的那个提交上打开比较。
- 右键点击任意分支 → 自那以后改了什么…
- ⌘K → 自那以后改了什么
之前的位置
ref 字段下方的那排小标签就是这个分支的 reflog:强制更新、变基、重置,每一条都带着发生的时间。挑一条,比较就会重新针对它运行一遍。这就是这个功能的全部——一个分支去过哪些地方,这份历史本来就躺在你的磁盘上。
另请参阅: 冲突雷达 · 恢复与 reflog