阅读变更

自那以后改了什么

你审阅过一个分支。有人对它做了变基(rebase)并强制推送。此时普通的差异(diff)已经毫无价值:变基之后每一个提交都是新提交,所以看上去什么都是新的。

git range-diff 会把两个版本逐个提交地配对起来,而 Gitcito 直接从 reflog 里读出旧的位置——所以这件事根本不需要事先记录任何东西就能成立。

强制推送之后被重写、新增和丢弃的提交

判定 含义
已重写 同一个提交,内容变了。展开它就能看到 interdiff——只有那处消息润色和多加的那次检查,而不是整个文件。
新增 你上次看过之后加进来的。
已丢弃 你上次看过之后消失的。
未改动 在这次重写中原封不动地活了下来。

怎么打开它

  • 一次获取(fetch)如果发现历史被重写,会告诉你。 提示会点出分支的名字,它在「远程」下的那一行会多出一个 ⟳,点一下就能在它原先所指向的那个提交上打开比较。
  • 右键点击任意分支 → 自那以后改了什么…
  • ⌘K → 自那以后改了什么

之前的位置

ref 字段下方的那排小标签就是这个分支的 reflog:强制更新、变基、重置,每一条都带着发生的时间。挑一条,比较就会重新针对它运行一遍。这就是这个功能的全部——一个分支去过哪些地方,这份历史本来就躺在你的磁盘上。

另请参阅: 冲突雷达 · 恢复与 reflog

在 GitHub 上改进这份翻译