Atomic Heart(原子之心)是一款基于 Tauri 和 Vue 3 开发的现代化 Git 仓库管理桌面应用。它为开发者提供了强大而直观的本地 Git 仓库管理体验,支持多平台 Git 服务集成,包括 GitHub、AtomGit、GitLab、Gitee 等。
- 本地仓库管理:导入、浏览和管理本地 Git 仓库
- 仓库克隆:支持 HTTPS 和 SSH 协议克隆远程仓库
- 智能认证:双协议认证系统,自动识别并使用合适的认证方式
- 多平台支持:GitHub、AtomGit、GitLab、Gitee 等主流 Git 平台
- 文件状态查看:实时显示工作区和暂存区文件状态
- 差异查看:高亮显示文件变更内容
- 提交管理:创建提交、查看提交历史
- 暂存操作:灵活的文件暂存和取消暂存
- 分支列表:查看本地和远程分支
- 分支操作:创建、切换、删除分支
- 远程分支:检出远程分支到本地
- 智能同步:fetch、pull、push 操作
- 冲突处理:友好的合并冲突提示
- 进度跟踪:实时显示同步进度和状态
- OAuth 2.0:安全的第三方平台授权登录
- Token 管理:Personal Access Token 存储和管理
- SSH 密钥:SSH 密钥检测和验证
- 深度链接:支持浏览器回调和应用唤起
- 现代化界面:基于 shadcn-vue 的精美 UI 组件
- 暗黑模式:支持亮色/暗色主题切换
- 响应式设计:适配不同屏幕尺寸
- 单实例模式:避免重复启动应用实例
- 框架:Vue 3 + TypeScript + 组合式 API
- 构建工具:Vite 6
- 状态管理:Pinia
- 路由管理:Vue Router 4
- UI 框架:Tailwind CSS + shadcn-vue
- 包管理器:pnpm
- 桌面框架:Tauri 2
- 编程语言:Rust 1.77+
- Git 操作:git2 + 系统 Git 命令
- HTTP 客户端:reqwest
- 数据存储:Tauri Store API
- 认证系统:OAuth 2.0 + Personal Access Token
- tauri-plugin-deep-link:深度链接支持
- tauri-plugin-single-instance:单实例模式
- tauri-plugin-store:数据持久化
- tauri-plugin-dialog:文件对话框
- tauri-plugin-opener:系统集成
- Node.js:18+ (推荐使用 LTS 版本)
- Rust:1.77+ (支持最新的 Tauri 2 特性)
- pnpm:8+ (推荐的包管理器)
- Git:2.30+ (用于 Git 操作)
根据 Tauri 要求安装对应平台的系统依赖:
- Microsoft Visual Studio C++ Build Tools
- WebView2 Runtime
- Xcode Command Line Tools
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
git clone https://atomgit.com/tianchang/AtomicHeart.git
cd atomic-heart
# 安装前端依赖
pnpm install
# 安装 Rust 依赖(自动执行)
cd src-tauri
cargo fetch
cd ..
复制 .env.example
文件并重命名为 .env
,然后填写必要的配置:
VITE_APP_BASE_API = 'xxxxxx'
VITE_APP_CLIENT_ID = 'xxxxxx'
VITE_APP_CLIENT_SECRET = 'xxxxxxxx'
# 启动开发服务器
pnpm run tauri:dev
# 构建当前平台
pnpm run tauri:build
atomic-heart/
├── src/ # 前端源代码
│ ├── assets/ # 静态资源
│ │ ├── icons/ # 图标文件
│ │ └── images/ # 图片资源
│ ├── components/ # Vue 组件
│ │ ├── ui/ # shadcn-vue UI 组件
│ │ ├── git/ # Git 相关组件
│ │ │ ├── CommitManager.vue # 提交管理
│ │ │ ├── SyncManager.vue # 同步管理
│ │ │ ├── BranchManager.vue # 分支管理
│ │ │ └── RepoClone.vue # 仓库克隆
│ │ └── common/ # 通用组件
│ ├── composables/ # 组合式函数
│ │ ├── useLocalRepositories.ts # 本地仓库管理
│ │ ├── useGitOperations.ts # Git 操作
│ │ └── useAuth.ts # 认证管理
│ ├── passport/ # 认证相关组件
│ ├── router/ # 路由配置
│ ├── services/ # 服务层
│ │ ├── api/ # API 服务
│ │ ├── deepLinkService.ts # 深度链接服务
│ │ └── authService.ts # 认证服务
│ ├── stores/ # Pinia 状态管理
│ ├── utils/ # 工具函数
│ │ ├── token/ # Token 管理
│ │ └── git/ # Git 工具
│ ├── view/ # 页面视图
│ │ ├── Home.vue # 首页
│ │ ├── Repositories.vue # 仓库列表
│ │ ├── LocalRepositories.vue # 本地仓库
│ │ └── RepositoryDetail.vue # 仓库详情
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── src-tauri/ # Tauri/Rust 后端代码
│ ├── src/ # Rust 源代码
│ │ ├── commands/ # Tauri 命令
│ │ │ ├── git.rs # Git 操作命令
│ │ │ └── mod.rs # 模块导出
│ │ ├── git/ # Git 核心功能
│ │ │ ├── auth.rs # 认证管理
│ │ │ ├── operations.rs # Git 操作
│ │ │ ├── types.rs # 类型定义
│ │ │ └── mod.rs # 模块导出
│ │ ├── utils/ # 工具模块
│ │ │ ├── system_command.rs # 系统命令
│ │ │ └── mod.rs # 模块导出
│ │ ├── http_client.rs # HTTP 客户端
│ │ ├── lib.rs # 库入口
│ │ └── main.rs # 主程序入口
│ ├── capabilities/ # Tauri 权限配置
│ ├── icons/ # 应用图标
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── public/ # 公共资源
├── docs/ # 项目文档
├── .env.example # 环境变量示例
├── package.json # Node.js 依赖配置
├── tailwind.config.js # Tailwind CSS 配置
├── vite.config.ts # Vite 配置
└── README.md # 项目说明
- VS Code + 推荐插件:
- Volar - Vue 3 支持
- Tauri - Tauri 开发支持
- rust-analyzer - Rust 语言支持
- Tailwind CSS IntelliSense - Tailwind 智能提示
- Tauri DevTools:内置的开发者工具
- Vue DevTools:Vue 组件调试
- Rust 调试:通过 rust-analyzer 进行断点调试
- 启动应用:运行
pnpm run tauri:dev
启动开发版本 - 登录认证:点击登录按钮,选择 AtomGit 平台进行 OAuth 认证
- 导入仓库:通过"本地仓库"页面导入现有的 Git 仓库
- 克隆仓库:通过"仓库"页面克隆远程仓库到本地
- 查看文件状态:在仓库详情页查看工作区和暂存区状态
- 提交代码:暂存文件后创建提交
- 同步代码:使用 fetch/pull/push 与远程仓库同步
- 分支管理:创建、切换、删除分支
应用支持深度链接功能,可以通过 URL 直接打开特定功能:
atomic-heart://auth/callback
- OAuth 认证回调atomic-heart://repository/open?url=<repo_url>
- 打开仓库atomic-heart://clone?url=<repo_url>
- 克隆仓库
# 清理缓存并重新安装
rm -rf node_modules
rm -rf src-tauri/target
pnpm install
- 检查 Git 是否正确安装(某些情况下可能需要系统git的参与)
- 验证 SSH 密钥配置
- 确认网络连接正常
- 检查 OAuth 客户端 ID 配置
- 确认回调 URL 设置正确
- 验证 Personal Access Token 有效性
- 确保应用已正确安装(生产版本)
- 检查系统是否注册了
atomic-heart://
协议 - 在开发模式下使用
register_all()
函数
我们欢迎所有形式的贡献!
- Fork 本仓库到你的 GitHub 账户
- Clone 你的 fork 到本地
- 创建分支
git checkout -b feature/your-feature-name
- 开发功能 并确保代码质量
- 运行测试
pnpm test
和pnpm lint
- 提交代码
git commit -m "feat: add your feature"
- 推送分支
git push origin feature/your-feature-name
- 创建 PR 在 GitHub 上创建 Pull Request
- 前端:遵循 Vue 3 + TypeScript 最佳实践
- 后端:遵循 Rust 编码规范
- 提交信息:使用 Conventional Commits 格式
- 代码格式化:使用 Prettier (前端) 和 rustfmt (后端)
- Bug 报告:使用 GitHub Issues,提供详细的复现步骤
- 功能请求:描述需求场景和期望的解决方案
- 文档改进:帮助完善文档和示例
- 基础项目架构
- OAuth 认证系统
- 本地仓库管理
- Git 基础操作(提交、暂存)
- 分支管理
- 同步操作(fetch/pull/push)
- 深度链接支持
- 暗黑模式
- 合并冲突解决
- 性能优化
- AtomGit功能集成
- 插件系统
- 自定义主题
- 多语言支持
- 移动端支持
本项目采用 MIT 许可证。
感谢以下开源项目的支持:
- Tauri - 跨平台桌面应用框架
- Vue.js - 渐进式 JavaScript 框架
- shadcn-vue - 精美的 Vue UI 组件库
- git2 - Rust Git 库
- AtomGit Issues:提交问题或建议
- Discussions:参与讨论
- Email:tianchang488@gamil.com
⭐ 如果这个项目对你有帮助,请给我们一个 Star!