Введение
GitBor — кроссплатформенный десктопный Git-клиент на Electron
Что такое GitBor
GitBor — свободный десктопный Git-клиент, альтернатива Fork, GitKraken и SourceTree. Сделан на Electron 28 + React 18 + TypeScript + Vite. Лицензия MIT.
Главные черты:
- GUI поверх git CLI — приложение запускает обычный
gitиз системы (или собственный бинарник изresources/git/{platform}/git) и парсит вывод. Никакого собственного git-движка — поведение совпадает с тем, что вы получите в терминале. - Виртуализированный граф коммитов на Canvas — строки рендерятся только для видимой области, layout считается в worker-потоке при > 2000 коммитов. Репозитории на 15000+ коммитов прокручиваются плавно.
- Мульти-репо без блокировок — каждый открытый репозиторий это изолированный набор сервисов (
RepoServicesRegistry). Длинныйgit pullна репо A не блокирует операции на репо B. - 5 уровней защиты данных — git reflog, auto-stash перед деструктивными операциями, сохранённый HEAD-хеш, WAL-журнал в
.git/GitBor-journal.json,RecoveryManagerпри старте. - AI commit messages — генерация описания коммита из staged-diff одной кнопкой. Поддержка OpenAI, Ollama, LM Studio, DeepSeek, Groq и Qwen Web.
Архитектура коротко
Четыре слоя, зависимости текут только вниз:
Renderer (React) — UI: Menu, Sidebar, Graph, Changes, Diff, Merge, SSH
↓
Preload — contextBridge (безопасный IPC-мост)
↓
Main (Node.js) — Application + Safety + Git Layer + SSH Key Manager
↓
Bundled git — resources/git/{platform}/git
Поток данных: App.tsx → api.invoke() → preload (ipcRenderer) → MessageBridge (ipcMain) → CommandHandler → GitExecutor → git binary.
Куда дальше
- Установка — где скачать, какие сборки доступны, как собрать из исходников.
- Начало работы — открыть первый репозиторий, основные операции.
- Граф коммитов — навигация по истории.
- Защита данных — что именно делает GitBor, чтобы вы не потеряли работу.
TODO: добавить общий скриншот главного окна.