Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GitPeekNew to Visual Studio Code? Get it now.
GitPeek

GitPeek

GitPeek

| (0) | Free
面向代码上下文的轻量级 VS Code Git 扩展。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitPeek

GitPeek 是一款面向代码上下文的轻量级 VS Code Git 扩展。 无需在复杂的 Git 界面间来回切换,即可查看当前代码行的修改者、文件历史、分支变更、选中代码的提交来源,并在提交前审查更改。

功能

  • 当前行归属:查看光标所在代码行的作者、日期和提交摘要。
  • 整文件归属:按需在每行旁显示作者、日期与提交,支持当前编辑器未保存的内容;新增/修改行标记为未提交,Hover 可打开提交或对应文件 Diff。切换文件后自动退出。
  • 文件历史:浏览文件的近期提交,点击即可查看该文件在本次提交前后的差异,包含重命名历史,并支持加载更多。
  • 版本导航:历史 Diff 标题栏可前往上一处/下一处文件修改,保留仓库、重命名前路径与打开时固定的历史快照。
  • 提交图:用分叉连线查看本地和远程提交,显示作者头像、引用与摘要;可从图中查看提交详情,并切换、创建、合并本地分支。
  • 整理提交(交互式 Rebase):在编辑器内重排当前分支的线性提交,并设置 pick、reword、edit、squash、fixup 或 drop,支持从根提交开始整理;执行前确认计划并保留备份引用,暂停后可继续或中止。
  • Stash:查看和预览当前仓库临时保存的改动,可保存已跟踪文件并按需包含未跟踪文件,也可应用或确认删除所选记录。
  • 提交详情与差异:查看提交修改的文件,并在 VS Code 中打开文本差异。二进制文件仅显示元数据,不会作为文本渲染。
  • 固定提交详情:提交详情在独立侧栏保留完整消息、作者、Hash、文件与统计;标题栏可固定/取消固定,连续打开多个 Diff 无需重复选择提交。
  • 历史搜索:提交图可按消息、作者、Hash 或代码文本变化查询 Git 历史,组合文件/目录路径、起止日期与全部/当前分支范围,并加载更多。路径按字面量匹配;代码变化查找指定文本出现次数改变的提交,日期按本地时区的提交者日期计算,包含起止日。
  • 自由比较:右键提交选择比较起点,再与另一提交比较;文件历史和详情中的文件可与工作区磁盘版本比较。
  • 分支比较:查看当前分支相对基准分支的领先/落后数量、提交、变更文件和差异。
  • 选中代码来源:按提交归组选中行并统计行数。未提交的行会单独显示,不会打开提交历史。
  • 选区演进历史:追踪选中代码经历过的修改,沿首父提交链处理 Merge,并保留 Git 能识别的重命名前路径;选择提交直接打开对应历史文件的 Diff,历史路径无法确认时查看提交详情。支持编辑中的文本:未修改行映射回 HEAD,混合选区可选择可追溯片段,全新增或改写的行会明确提示。
  • 审查更改:检查已暂存、未暂存和未跟踪的文件及行数,并提示 console.log、debugger、TODO、FIXME、.env 和 *.pem 等内容。
  • 文件级暂存:在更改列表右键暂存或取消暂存文件,支持 Ctrl/Cmd、Shift 多选及分组操作;支持新增、删除、重命名与首次提交,取消暂存保留工作区内容。
  • 智能生成提交信息:根据已暂存文件的名称和状态生成候选信息,并可将所选内容填入当前仓库的 SCM 提交输入框。此功能不使用 AI,也不会检查完整差异来推断意图。

GitPeek 侧栏包含“仓库”“更改”“分支变更”“文件历史”“提交详情”和“提交比较”视图。针对文件的命令会使用当前活动文件所属的仓库。智能提交通过仓库根目录匹配 VS Code 内置 Git SCM,因此支持多根工作区。

提交图从仓库视图标题栏或命令面板打开。公开 GitHub 仓库可显示 GitHub 头像;没有公开头像或网络不可用时显示作者首字母。每条提交的操作按钮可复制完整 Hash、检出提交或 Cherry-pick 到当前分支。检出将进入分离 HEAD 状态;检出和 Cherry-pick 均要求工作区干净。Cherry-pick 冲突时可在图中继续或中止。合并分支前也要求工作区干净,发生冲突时保留 Git 的冲突状态供你处理。

命令

打开命令面板(Ctrl+Shift+P / Cmd+Shift+P)运行:

命令 用途
GitPeek: 文件历史 查看当前文件的历史
GitPeek: 提交图 查看提交连线、作者头像和分支操作
GitPeek: 整理提交(交互式 Rebase) 打开当前分支的提交整理编辑器
GitPeek: 继续 Rebase 解决冲突或完成编辑后继续整理
GitPeek: 中止 Rebase 中止正在进行的整理并恢复操作前的状态
GitPeek: Stash 管理 预览、保存、应用或删除 Stash
GitPeek: 查看当前行归属 刷新光标所在行的归属信息
GitPeek: 切换整文件归属 在当前编辑器显示或关闭全部行的归属
GitPeek: 上一处文件修改 在历史 Diff 中前往更早的文件修改
GitPeek: 下一处文件修改 在历史 Diff 中前往快照中的更新修改
GitPeek: 查看选中代码来源 查看所选代码行对应的提交
GitPeek: 选区演进历史 沿首父提交链追溯选区的修改
GitPeek: 与基准分支比较 比较当前分支与基准分支
GitPeek: 查看分支变更 查看分支提交和变更文件
GitPeek: 审查更改 检查已暂存、未暂存和未跟踪的更改
GitPeek: 生成提交信息 根据已暂存文件生成候选提交信息
GitPeek: 刷新 刷新 GitPeek 视图和缓存数据

“文件历史”和“与基准分支比较”也可从编辑器标题栏打开。选中文本后,可从编辑器上下文菜单打开“查看选中代码来源”。

右键提交图中的提交,可查看详情、复制完整 Hash、检出、Cherry-pick 或“从此提交开始整理”;检出和 Cherry-pick 保留原有确认与工作区检查。提交图工具栏的“整理提交”可打开当前分支的整理编辑器。右键侧栏的文件历史或分支提交,可查看详情、复制 Hash;文件历史、分支变更文件和更改列表均可右键打开差异。编辑器和资源管理器中的文件也提供“文件历史”和“与基准分支比较”入口,操作使用右键所指文件的仓库。

文件历史、分支变更文件和更改列表还可右键“打开工作区文件”或“复制相对路径”(相对于该文件的仓库根目录)。文件历史中的这些操作使用当前文件路径,历史 Diff 仍使用提交时的路径;工作区文件已删除时会提示,不会创建空文件。四个侧栏视图的标题栏均提供刷新按钮,用于刷新 GitPeek 视图和缓存。

设置

设置 默认值 说明
gitpeek.enabled true 启用 GitPeek 功能。
gitpeek.blame.enabled true 启用当前行归属显示。
gitpeek.blame.delay 300 解析当前行归属前的延迟,单位为毫秒。
gitpeek.history.limit 20 初次加载的文件历史条数。
gitpeek.baseBranch auto 用于比较的基准分支,或指定分支名称。
gitpeek.commit.conventional true 将智能提交候选信息格式化为 Conventional Commits。
gitpeek.commit.defaultType chore 首选类型:feat、fix、refactor、perf、docs、test、style 或 chore。

环境要求

  • VS Code 1.96.0 或更高版本。
  • 系统已安装 Git,且 Git 可通过 PATH 找到。
  • 已启用 VS Code 内置 Git 扩展,以集成 SCM。

构建并安装本地 VSIX

在仓库根目录安装开发依赖并构建扩展:

npm install
npm run check
npm test
npm run package

在 VS Code 中安装生成的 VSIX:

code --install-extension gitpeek-0.7.0.vsix

也可以在 VS Code 中运行 扩展:从 VSIX 安装...,然后选择生成的文件。

自动打包与发布

每次推送分支或创建 Pull Request,GitHub Actions 都会在 Windows 和 Linux 上运行测试、类型检查并生成 VSIX,可从对应 CI 运行的 Artifacts 下载。正式版本安装包见 GitHub Releases。

发布新版本时,同步更新 package.json 与 package-lock.json 的版本号,提交并推送后,为该提交创建相同版本的标签(例如 v0.7.0),再推送标签。Release 工作流会检出标签对应的代码,核对版本、运行测试并打包,将 VSIX 附加到 GitHub Release。

补发历史版本:先将版本标签指向该版本的历史提交并推送,再在 Actions → Release → Run workflow 中选择 main,填写对应标签。手动补发不会把旧版设为 Latest;已有同名安装包会保留。

本轮新增整文件归属、历史版本导航、编辑中选区追溯和交互式 Rebase,以 v0.7.0 发布。历史版本 v0.1.0~v0.6.0 使用各自验收提交补发。

范围与限制

GitPeek 0.7.0 在 0.6.0 基础上增加历史筛选、整文件归属、版本导航、编辑中选区追溯和交互式 rebase。Pull Request 集成、AI 聊天、按行暂存及丢弃修改仍不在范围内。智能提交仅根据已暂存文件的路径和状态提供措辞建议,提交前请检查生成的信息。二进制差异仅显示元数据,不显示文件内容。

代码变化搜索使用 Git -S,区分大小写;同一文本只改变位置而出现次数不变时不会命中。路径筛选只匹配填写的文件或目录,不跨重命名前路径追踪;追踪重命名请使用文件历史。

两个提交采用快照 A → B 直接比较;“与基准分支比较”仍使用共同祖先 → HEAD。工作区比较读取磁盘,遇到未保存内容会提示先保存。选区历史沿 Git 首父提交链追踪,Merge 显示合入结果,不展开其他父链;复制或大幅改写导致 Git 无法识别的重命名可能中断追踪。编辑中的选区只追溯与 HEAD 对应的未修改片段;整文件归属和编辑中追溯支持 2 MB、20,000 行以内的文本。版本导航固定在打开时的历史快照,重新打开文件历史 Diff 才包含新提交。

更改列表支持 Ctrl/Cmd 多选和 Shift 连选。暂存可混选同一仓库的未暂存与未跟踪文件;取消暂存只接受已暂存文件。右键分组或点击分组的加/减按钮可处理当前分组,文件行也提供快捷按钮。所选文件中有冲突、未保存修改或过期状态时整批停止;操作只更新 index,不删除磁盘文件。

交互式 rebase 使用原生 Git,每次最多整理当前分支的 200 个线性提交(可包含根提交),不重写 Merge 历史,不支持跨分支 onto,也不会自动推送。开始前要求工作区干净且没有未保存文件;所选历史被本地远程跟踪引用包含时,会特别提示历史重写风险。本地未发现远程引用不能证明提交从未推送。执行前在 refs/gitpeek/rebase/ 下保留原 HEAD 的备份引用,完成或中止后仍保留,可用于恢复。

发生冲突时,先解决并暂存文件,再执行“继续 Rebase”;选择 edit 暂停后,手动修改并通过 git commit --amend 完成该提交,再继续。中止会丢弃本次 rebase 产生的冲突改动并恢复操作前状态。

关闭面板或重启 VS Code 后,可再次执行“整理提交”恢复 GitPeek 发起的 rebase;其他工具发起的 rebase 仍由原工具处理。完成后如需找回原历史,可使用面板显示的备份引用创建恢复分支:git branch <恢复分支名> <备份引用>,再检查原有提交。备份引用不会自动删除。

改进方案与性能复测

第一轮任务与验收见 代码调查体验改进方案,本轮整文件归属、版本导航及编辑中追溯见 深入代码调查改进方案。运行 npm run benchmark -- . README.md HEAD~1 10 可记录当前环境下的数据查询延迟与 Git 调用量;这不是 VS Code 界面耗时或 GitLens 性能对照。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft