Files
GitPilot/README_CN.md
2026-03-09 16:49:42 +08:00

5.2 KiB
Raw Blame History

GitPilot

English

一款跨平台桌面 Git 仓库管理工具,基于 Go + Wails v3 + Nuxt 4 + Vue 3 构建。

在统一界面中管理来自不同平台GitHub、Gitee、Gitea 等)的多个 Git 仓库 —— 类似一个独立的、轻量级的 VS Code Git 面板。

Go Wails Vue Nuxt License

功能特性

多平台管理

  • 管理来自 GitHubGiteeGitea 及自建 Git 平台的仓库
  • 平台 → 用户 → 项目 层级组织
  • 通过图形界面添加/删除平台、用户和项目

VS Code 风格的 Git 操作

  • 以可折叠的目录树结构查看变更文件
  • 暂存/取消暂存 — 支持单文件、整个目录或全部操作
  • 内置提交信息编辑器,一键提交更改
  • 丢弃更改 — 同时支持已跟踪和未跟踪文件
  • Diff 查看器 — 语法高亮显示增删内容
  • 二进制文件检测 — 自动跳过图片、可执行文件等的预览

提交历史

  • 浏览提交历史,显示作者、时间和提交信息
  • 点击提交查看该版本的变更文件列表(与 VS Code 一致)
  • 选中文件查看单文件 diff
  • 版本回滚 — 支持硬回滚/混合回滚/软回滚,操作前弹出确认对话框

分支管理

  • 查看所有本地分支,标记当前分支
  • 通过下拉菜单切换分支
  • 拉取/推送/获取远程信息,自动识别当前分支

桌面体验

  • 系统托盘 — 关闭窗口自动隐藏到托盘,点击托盘图标恢复窗口
  • 可拖拽调整面板 — 侧边栏、文件列表、查看器之间的分隔条可拖拽
  • 暗色主题 — Catppuccin Mocha 配色方案 + Ant Design Vue
  • 原生文件夹选择器 — 通过系统对话框选择项目路径

🏗️ 技术栈

层级 技术
后端 Go 1.25, Wails v3 (alpha.74)
前端 Nuxt 4, Vue 3.5, Vite 7
UI 组件库 Ant Design Vue 4, @ant-design/icons-vue
Git 操作 Git CLI 封装支持代理30 秒超时
配置 基于 YAML 的持久化配置
构建 Taskfile v3

📁 项目结构

GitPilot/
├── main.go                  # Wails 应用入口,系统托盘,窗口管理
├── config.yaml              # 平台/用户/项目配置文件
├── Taskfile.yml             # 构建任务
├── go.mod
├── cmd/                     # 命令行工具
├── config/
│   └── config.go            # YAML 配置加载/保存
├── internal/
│   ├── proxy.go             # 系统代理检测
│   ├── git/
│   │   └── client.go        # Git CLI 封装34 个操作)
│   └── app/
│       └── service.go       # AppService — 34 个方法暴露给前端
├── frontend/
│   ├── nuxt.config.ts
│   ├── package.json
│   └── app/
│       ├── pages/
│       │   └── index.vue    # 主布局,可调整侧边栏宽度
│       ├── layouts/
│       │   └── default.vue  # Ant Design 暗色主题配置
│       └── components/
│           ├── Sidebar.vue      # 平台/用户/项目树形侧边栏
│           ├── ContentArea.vue  # Git 状态、Diff、历史、分支
│           └── FileTreeNode.vue # 递归文件树组件(含操作按钮)
└── build/                   # Wails 构建配置

🚀 快速开始

环境要求

开发运行

# 克隆仓库
git clone https://github.com/zhuy1228/GitPilot.git
cd GitPilot

# 安装前端依赖
cd frontend && npm install && cd ..

# 生成 Wails 绑定
wails3 generate bindings

# 构建前端
cd frontend && npx nuxi generate && cd ..

# 开发模式运行
task dev
# 或者
wails3 dev -config ./build/config.yml -port 9245

生产构建

task build

构建产物会输出到 bin/ 目录。

📋 API 概览

GitPilot 通过 Wails 绑定向前端暴露了 34 个后端方法

类别 方法
项目管理 GetProjectTree, AddProject, RemoveProject, SelectDirectory
平台管理 AddPlatform, UpdatePlatform, RemovePlatform, GetPlatformInfo
用户管理 AddUser, UpdateUser, RemoveUser, GetUserInfo
Git 状态 GetProjectStatus, GetProjectChangedFiles, GetFileContent, GetFileDiff, GetFileDiffStaged
暂存操作 StageFiles, UnstageFiles, StageAll, UnstageAll
提交操作 CommitChanges, DiscardFiles
远程操作 PullProject, PushProject, FetchProject
提交历史 GetCommitLog, GetCommitDiff, GetCommitFiles, GetCommitFileDiff
分支管理 GetBranches, SwitchBranch, ResetProject

📄 开源协议

MIT