歷史
「歷史」(⌘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。
最後更新於