历史
「历史」(⌘3)把提交列表、提交详情与改写操作放在同一列里。选中一条提交,中间检视器就显示它的 diff。
图谱与分页
- 列表按页加载,滚动到底部继续取,不会一次把整个仓库读进内存;
- 每条提交左侧有轻量分叉图,能看出合并与分支走向;
- 默认只看当前分支,可以切到全部分支视图;
- 合并提交带合并标记,多父提交在详情里分别列出。
筛选与搜索
搜索框支持这些写法:
| 输入 | 作用 |
|---|---|
| 普通文本 | 匹配提交标题与正文 |
author:名字 | 按作者过滤 |
content:文本 | 在提交内容中搜索 |
| 分支名 | 只看某个分支的历史 |
还可以按日期范围过滤,以及切换是否忽略空白差异。
提交详情
选中提交后可以:
- 查看完整 diff,支持与变更页相同的布局与查找;
- 预览、保存单个文件在该提交中的版本,或把它恢复到工作区;
- 复制提交链接、完整提交信息或 format-patch;
- 查看包含该提交的分支;
- 选中两条提交进行比较;
- 把提交区间导出为 ZIP 归档或补丁;
- 从该提交创建分支、创建 worktree,或检出为游离 HEAD。
Blame
在文件或提交详情里打开 blame:
- 可以在任意提交上查看 blame,而不只是 HEAD;
- 可忽略空白改动;
- 可指定“忽略格式化提交”,让大范围重排不污染归属;
- 每行显示提交、作者与时间,点击跳到对应提交。
引用日志与重置
「引用日志」列出 HEAD 的 reflog 记录,可按 selector、SHA 或说明过滤。
- 软重置(
git reset --soft):只移动 HEAD,索引与工作区保持不变; - 混合重置与硬重置在确认后执行;硬重置会先把脏工作区写成恢复快照。
reflog 不是未提交内容的备份。要找回被丢弃的工作区改动,用恢复中心。
改写历史
| 操作 | 说明 |
|---|---|
| 交互式变基 | 待办列表可编辑:drop、squash、fixup、reword、edit,支持拖动排序 |
| autosquash | 识别 fixup! / squash! 提交并自动排到目标之后 |
| 压缩连续提交 | 选中一段连续提交合并为一条 |
| 修改提交信息 | 对任意提交 reword,内部通过临时交互式变基完成 |
| 拆分 HEAD | 按片段选择把当前提交拆成多条,并保留备份引用 |
| 拣选与还原 | 多选提交批量 cherry-pick 或 revert;还原合并提交时选择主线父提交 |
| 改写对照 | 记录改写前后的区间,用 range-diff 对比差异 |
所有改写都会在操作前确认。改写完成后,旧的提交仍然可以通过 reflog 找回。
签名徽标
提交列表与详情会显示 GPG 或 SSH 签名状态:有效、无效或未签名。标签的签名验证在分支、标签与远端中说明。
分支审阅
选中一个基准分支,可以让 ACP Agent 审阅 base...HEAD 之间的出站提交。发送前会列出范围、提交数、文件统计与字节数,返回结果带回执;范围变化后回执会标为过期。这属于 AI 功能,见 ACP Agent。
最后更新于