Об этом проекте
# manygit — менеджер git-репозиториев из терминала
manygit — это один CLI-инструмент с интерфейсом в стиле lazygit для целого **дерева** git-репозиториев. Укажите ему папку — и все репозитории внутри появятся на одном экране, с указанием ветки и состояния: впереди, позади или есть изменения. Можно выполнить fetch, pull, push или переключить ветку в выделенном репозитории, а также просмотреть граф коммитов, запустить скрипты и посмотреть пул-реквесты GitHub (если установлен CLI `gh`).
В отличие от пакетных программ вроде `gita` или `mani`, здесь не нужен конфиг-файл для регистрации репозиториев и не нужно читать вывод: manygit находит репозитории, обходя папки, и вы остаётесь в списке.
## Основные возможности
- **Автоматическое обнаружение**: сканирует папку (глубина по умолчанию — 3) в поисках git-репозиториев и группирует их по родительской папке.
- **Единый вид статуса**: ветка, счётчики впереди/позади, наличие изменений и локальные репозитории — всё на первый взгляд.
- **Прямые действия**: sync (fetch + fast-forward pull), push, переключение веток, отмена изменений (с подтверждением), fetch одного или всех репозиториев.
- **Граф коммитов**: полноэкранная визуализация истории коммитов.
- **Запуск скриптов**: определите и запускайте скрипты для всех репозиториев.
- **Панель PR на GitHub**: список ваших открытых PR и запросов на ревью (требуется CLI `gh`), переход на ветку PR в одну клавишу.
- **Git на простом английском**: введите запрос вроде "rebase current onto master", и ИИ-обвязка преобразует его в git-команды для подтверждения.
- **Оболочка внутри репозитория**: откройте постоянное приглашение shell в выделенном репозитории, чтобы выполнять любые команды.
- **Фильтрация**: фильтруйте репозитории по имени, ветке или тегу; показывайте только репозитории с изменениями/впереди/позади.
- **Темы**: несколько цветовых тем (default, serika_dark, dracula, nord, catppuccin, 8008).
- **Самообновление**: встроенный модуль обновления с показом журнала изменений.
## Установка
**Linux**
curl -fsSL https://raw.githubusercontent.com/rabeeh-ta/manygit/main/install.sh | bash
**macOS**
brew tap rabeeh-ta/manygit && brew trust rabeeh-ta/manygit && brew install manygit
**Windows (PowerShell)**
irm https://raw.githubusercontent.com/rabeeh-ta/manygit/main/install.ps1 | iex
Другие способы: `go install github.com/rabeeh-ta/manygit@latest` (Go 1.24+), или сборка из исходников. Чтобы закрепить конкретную версию, передайте тег установщику (например, `bash -s -- v1.0.7`).
## Использование
manygit # сканировать текущую папку
manygit --root ~/work # сканировать указанную папку
manygit stats # вывести статистику загрузок GitHub
## Горячие клавиши (кратко)
- `1`–`7`: переключение панелей (Repos, Scripts, Branches, PRs, Graph, Changes, Output)
- `j`/`k`: перемещение внутри активной панели
- `enter`: действие зависит от контекста (просмотр веток, checkout, запуск скрипта, checkout ветки PR)
- `s`/`p`: sync (fetch + ff-pull) / push выделенного репозитория
- `d`/`D`: отмена изменений (только отслеживаемых / также неотслеживаемых)
- `f`/`r`: fetch одного / повторный fetch всех
- `g`: полноэкранный граф коммитов
- `n`: полноэкранная новостная лента (заголовки с ИИ-саммари)
- `t`: переключение отображения последнего тега
- `F`: фильтр по репозиториям с изменениями/впереди/позади
- `/`: фильтр списков (репозитории по имени и ветке; ветки по имени; скрипты по имени)
- `:`: git-команды на простом английском через ИИ-обвязку
- `!`: открыть оболочку в выделенном репозитории
- `o`: открыть репозиторий в редакторе
- `z`: увеличить активную панель
- `esc`: выйти на один уровень состояния назад
- `?`: справка (клавиши и настройки)
- `q` или `esc esc`: выход
## Конфигурация
Необязательный конфиг в `~/.config/manygit/config.yml`:
max_depth: 3 # глубина поиска ниже корня (1–5)
open_cmd: code # команда редактора для `o`
theme: default # default | serika_dark | dracula | nord | catppuccin | 8008
status_glyphs: unicode # или "ascii"
## Безопасность
- manygit никогда не пишет в папку запуска.
- Сам по себе он никогда не делает force-push, merge или rebase; `s` — это fetch + fast-forward-only pull, `p` — обычный push.
- Единственное разрушительное действие, которое он предлагает сам, — отмена изменений (`d`/`D`), и оно всегда запрашивает подтверждение.
- Оболочка `!` и ИИ-команды `:` — намеренные исключения с защитой: команды показываются перед запуском, git выполняется со списками аргументов (без shell-конвейеров), опасные флаги отклоняются.
## Релиз (для сопровождающих)
Отправьте тег версии (например, `git tag v0.2.0 && git push origin v0.2.0`) — GitHub Actions соберёт бинарники и опубликует релиз; установщик и самообновление подхватят его автоматически. Описание релиза становится встроенным журналом изменений.
## Попробовать онлайн
Рабочая версия TUI доступна на [лендинге](https://rabeeh-ta.github.io/manygit/) — git там ненастоящий, но клавиши работают.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.