Hyper Git - Agentic Git v0.0.18 — Commit / Branches 标题栏重构 · 批量 Discard Changes · 分支级 Push · 双市场发布重启
本版核心:Commit 与 Branches 两视图的头部与标题栏整体重构——Commit 头部两行 UI 上移 VS Code 标题栏(净省两行竖直空间),并新增以文件勾选集为范围的批量 Discard Changes;Branches 的 Push 下放分支右键(按分支推送)、Prune 上移标题栏、Merge… 收入「…」菜单。同时修复无效 codicon 致 Compare with Current Branch 图标渲染空白与文件列表树的 A11y 语义回归,并重启 Open VSX 发布通道,覆盖 Cursor / Windsurf / VSCodium 等编辑器。
✨ 亮点速览
- Commit 头部两行 UI 上移标题栏:Active Changelist 下拉与
⋯管理菜单、List ⇄ Tree 段控全部迁入 VS Code 标题栏,Select All 改为文件列表内吸顶首行——净省两行竖直空间,文件列表可视区随之变长。 - 批量 Discard Changes:Commit 标题栏最左
$(discard)图标,以文件列表勾选集为范围一次性撤销——单次确认对话框列示目标文件,未跟踪文件删除、已跟踪改动还原,语义与单文件右键 Discard Changes 完全一致。 - 分支级 Push:右键 Branches 视图中任一本地分支即可单独推送——已配置上游时按显式 refspec 推送(本地名与上游名不一致亦正确),无上游时选定 remote 并以
-u建立追踪。 - Branches 标题栏重排:Push 图标下放右键菜单,「Prune Deleted Remote Branches」上移标题栏
$(sync-ignored)图标位,「Merge…」收入「…」菜单。 - 活动 Changelist 管理改走 QuickPick:各列表带文件计数、当前活动项预选,分隔线后并入 New / Rename / Delete;活动列表名常驻视图副标题(Default 时省略——无信息量不常驻)。
- 标题栏图标常驻引导:VS Code 默认仅在 hover / 聚焦视图时显示标题栏动作,现提供命令面板开关与首次激活的一次性提示,一键让图标常驻。
- 图标渲染空白修复:Compare with Current Branch 的
$(compare)并非有效 codicon id,修正为$(git-compare);并新增图标名白名单护栏测试,杜绝同类漏出。 - 双市场发布重启:同一枚 VSIX 同时发布至 VS Code Marketplace 与 Open VSX,Cursor / Windsurf / VSCodium 等 Open VSX 系编辑器可直接搜索安装。
🧩 特性详述
1. Commit 视图头部两行 UI 上移标题栏(#120)
原视图头部的两行控件整体迁入 VS Code 标题栏,净省两行竖直空间:
- Active Changelist 选择器:原下拉框与
⋯管理菜单合并为一个 Set Active Changelist… 入口(位于标题栏「…」菜单)——点击弹出 QuickPick,各列表带文件计数、当前活动项预选,分隔线后并入 New / Rename / Delete Changelist… 操作(默认列表不可改名 / 删除);活动列表名常驻视图副标题(标题「Commit」同行右侧),活动列表为 Default 时省略; - List ⇄ Tree 切换:原段控改为标题栏
$(list-tree)/$(list-flat)互斥图标(交互范式与 Graph / Branches 一致),偏好移交扩展宿主workspaceState按仓库持久化(hyperGit.commit.dmode:<repo>); - Select All 吸顶:复选框改为文件列表容器内的吸顶首行(列表为空时随空态隐藏),原
.cl-bar与 files-header 两行整体移除。
完整叙述见 Commit 视图整合 与 变更文件目录树。
2. Commit 标题栏批量 Discard Changes(#121)
新增 Discard Changes 标题栏动作(最左 $(discard) 图标),以文件列表勾选集为范围批量撤销:
- 单次 modal 确认,正文列示目标文件(超 10 个截断为
… and N more); - 确认后批量执行——未跟踪文件
clean删除、已跟踪改动restore还原,与单文件右键 Discard Changes 走同一条统一路径(单 / 多选语义一致); - 勾选集自 webview 单向同步宿主镜像(webview 仍为事实源),无勾选时给出提示而非静默无操作。
同时 Set Active Changelist… 与 New Changelist… 两入口由标题栏图标位收入「…」菜单(0_changelist 组,居同步组之前),把有限的图标位让给高频动作。
3. Branches 标题栏重排与分支级 Push(#121)
- 分支右键 Push(新增):右键任一本地分支 → Push。已配置上游时按显式 refspec 推送到追踪分支(本地名与上游名不一致亦正确);无上游时选定 remote 并以
-u建立追踪——与全局 Push 的双路径语义一致。未配置任何 remote 时给出明确告警;推送全程带进度反馈,完成后刷新视图并提示; - Push 图标下放:标题栏不再占用图标位(全局 Push 仍可用 Commit 视图标题栏与命令面板);
- Prune Deleted Remote Branches 上移:由「…」菜单升至标题栏
$(sync-ignored)图标(即原 Push 位)。该图标全扩展唯一,既区别于同栏$(refresh)/$(sync)同步类,也不与右键删除类$(trash)混淆; - Merge… 收入「…」菜单:置于同步组内 Update Project 与 New Tag… 之间,不再占用图标位。
4. 标题栏图标常驻引导(#121)
VS Code 默认仅在 hover / 聚焦视图时显示标题栏动作(平台行为:ViewPane 依 workbench.view.alwaysShowHeaderActions 切换 CSS 类,扩展贡献点无法覆盖)。本版提供双入口:
- 命令面板 Hyper Git: Always Show View Toolbar Icons 随时开启;
- 首次激活的一次性提示——Always Show 写入全局设置并即时生效,Don't Show Again 不再打扰;该设置已为
true时静默不提示。
5. 稳定性修复(#120 / #121)
- Compare with Current Branch 菜单图标渲染为空白方块:
$(compare)并非有效 codicon id(自 v0.0.17 起即如此),修正为$(git-compare)。无效 codicon id 在 VS Code 中静默渲染为空白且无任何告警,现以取自microsoft/vscode-codicons的图标名白名单护栏测试全量校验命令与 submenu 图标,杜绝同类漏出——该护栏在本版开发期即拦下另一处新引入的$(sync-ignore); - Commit 文件列表树语义回归:吸顶 Select All 行引入后打断了树语义——
role="tree"与aria-label回归保留于可聚焦的文件列表容器,吸顶行与行区容器降为presentation;并补scroll-margin-top,避免键盘导航的scrollIntoView把首行滚到吸顶行之下被遮挡。
6. 发布通道:重启双市场(#119)
CI publish job 增回 Open VSX 发布步骤(由仓库变量 ENABLE_OVSX_PUBLISH 门控,与 Marketplace 的 ENABLE_MARKETPLACE_PUBLISH 对称),复用 package job 产出的同一枚 VSIX、共享同一道 production 审批门——两个市场分发的是字节一致的构建产物。发布决策沿革见 发布策略调研。
⚙️ 升级与兼容
- Commit 文件列表 List / Tree 偏好一次性重置为默认 flat:该偏好自 webview state 移交宿主
workspaceState按仓库持久化(hyperGit.commit.dmode:<repo>),旧偏好不迁移;勾选集、目录折叠状态与提交草稿均不受影响; - Branches 标题栏不再有 Push 图标:改为右键任一本地分支执行(新增的按分支推送能力);全局 Push 仍可用 Commit 视图标题栏与命令面板;
- Branches 的 Merge… 由标题栏收入「…」菜单;「Prune Deleted Remote Branches」反向由「…」菜单上移标题栏图标位;
- Commit 的 Set Active Changelist… 与 New Changelist… 由标题栏图标位收入「…」菜单;活动 changelist 为 Default 时视图副标题不再显示;
- 标题栏图标默认仅 hover 显示属 VS Code 平台行为——若希望常驻,用命令面板的 Hyper Git: Always Show View Toolbar Icons 开启(或在首次激活的提示中点 Always Show);
- 无破坏性移除:全部既有命令、视图与配置项保留;本版新增
hyperGit.pushBranch、hyperGit.commit.discardSelected、hyperGit.commit.detailTree/detailFlat、hyperGit.alwaysShowHeaderActions五个命令。
📦 安装
- VS Code Marketplace:搜索
Hyper Git - Agentic Git直接安装或更新。 - Open VSX:搜索
Hyper Git - Agentic Git直接安装或更新(覆盖 Cursor / Windsurf / VSCodium 等 Open VSX 系编辑器)。 - 手动:从 Releases 下载
hyper-git-agentic-git-0.0.18.vsix→ 命令面板Extensions: Install from VSIX。
系统要求:VS Code ≥ 1.85.0,且启用内置 Git 扩展(vscode.git,默认随附)。仅支持本地 git 仓库,不支持虚拟 / Web 工作区。
💬 反馈
欢迎在 GitHub Issues 反馈问题与建议。完整工程视角变更记录见 CHANGELOG。
许可证:MIT。