Skip to content

Latest commit

 

History

History
102 lines (71 loc) · 3.54 KB

File metadata and controls

102 lines (71 loc) · 3.54 KB

Understanding How Git Works

交互式工具,用于理解 Git 的工作原理、提交历史与合入过程。

English

功能特性

  1. 读取git仓库的提交记录
  2. 展示提交记录(commit id、作者、日期、提交信息)
  3. 选中特定commit后,显示修改的文件列表
  4. 选中特定commit和文件后,显示文件的修改内容
  5. 选中特定commit后,显示对应的treehash、文件内容和可视化的目录结构
  6. 选中多个commit后,根据提交顺序绘制提交关系图(前驱后继、分支、合并等关系)
  7. 提交关系图中,每个commit节点显示commit id
  8. 选中特定节点后,显示该节点的详细信息(commit id、作者、日期、提交信息、treehash)
  9. 选中特定节点后,可以查看快照详情(treehash、tree结构、文件列表)
  10. commit列表可滚动展示,通过复选框控制关系图中显示的commit

技术栈

  • 框架: React + TypeScript + Vite
  • Git操作: simple-git(通过Vite插件集成)
  • 可视化: D3.js

安装和启动

从 npm 安装(CLI)

仓库:hitzhangjie/git-vis。npm 包名为 @hitzhangjie/git-vis(未作用域名 git-vis 已被占用),命令行仍为 git-vis

npm install -g @hitzhangjie/git-vis
git-vis /path/to/your/repo
git-vis .

从源码安装(开发)

npm install

桌面应用(Electron)

# 开发模式(自动启动 Vite + Electron)
npm run dev:electron

# 打包安装包(macOS: dmg / Windows: nsis / Linux: AppImage)
npm run dist

CLI 启动行为:

  • 不传路径:进入仓库输入页
  • 传入有效仓库路径:直接进入可视化页面
  • 传入无效路径:回退到仓库输入页

命令行启动(推荐)

在任意目录下打开本地 Git 仓库:

# 在项目目录内执行(开发时)
npm run git-vis -- .

# 或安装为全局命令后
npm link
git-vis /path/to/your/repo
git-vis .

命令会校验仓库路径、启动开发服务器,并自动在浏览器中打开界面,无需再手动输入路径。

仅启动 Web 开发服务器

npm run dev

访问:http://localhost:3000,在页面中手动输入仓库路径。

使用步骤

  1. 打开仓库 — 使用 git-vis <repo> 自动打开,或在 Web 界面输入路径后点击「打开仓库」
  2. 查看提交列表 — 左侧面板显示所有提交记录,点击查看详情
  3. 查看提交详情 — 中间面板显示修改的文件列表,点击文件查看差异
  4. 查看快照 — 在commit详情页面点击"查看快照"按钮查看tree结构
  5. 查看关系图 — 勾选左侧提交列表中的commit,右侧面板显示关系图
    • 关系图使用D3.js力导向图算法,支持拖拽节点
    • 点击节点查看详细信息

注意事项

  • 确保系统已安装Git
  • 确保指定的路径是一个有效的git仓库
  • 大型仓库可能需要较长的加载时间

ps: badcase/git_cp_mistake.tgz 是一个精心构造的 badcase,git merge feature / git cherry-pick feature上提交,此时均不会报冲突,但是直观上我们认为应该报冲突,毕竟修改有重叠 …… 但是实际上不是的。这个疑问也是为了做这个项目可视化git内部细节、帮助更多git用户了解更多细节的一个源头。

文档: 工程结构、HTTP API、本地开发见 docs/DEVELOPMENT.md;设计说明见 docs/1-SUMMARY.md