Git manager CLI
Project description
🐴 Pony Git Manager (pony-git)
CLI-обёртка над Git, которая упрощает и автоматизирует типичные рабочие процессы. Это не замена Git, а набор высокоуровневых команд, которые объединяют несколько операций в одну и добавляют проверки безопасности.
📋 Содержание
- Что это?
- Зачем?
- Установка
- Быстрый старт
- Доступные команды
- Примеры использования
- Чем НЕ является
- Требования
- Разработка
- Лицензия
🎯 Что это?
pony-git — умный помощник для повседневной работы с Git, который:
- ✅ Объединяет
git add .+git commitв одну команду - ✅ Проверяет наличие
.gitignoreперед коммитом - ✅ Предоставляет встроенные подсказки workflow'ов
- ✅ Упрощает работу с remote, tags и branches
- ✅ Добавляет защиту от типичных ошибок
💡 Зачем?
Проблемы, которые решает pony-git:
| Проблема | Решение pony-git |
|---|---|
| Множество команд для простых операций | Одна команда вместо 3-5 |
Случайные коммиты без .gitignore |
Автоматическая проверка + --force опция |
| Забывание best practices | Встроенные подсказки (pony-git info) |
| Разные подходы в команде | Стандартизированный workflow |
| Ошибки из-за невнимательности | Валидация перед выполнением |
Целевая аудитория:
- 🎓 Начинающие разработчики — упрощение изучения Git
- 🚀 Опытные разработчики — автоматизация рутинных операций
- 👥 Команды — единый процесс работы с репозиторием
📦 Установка
Доступно после публикации первого релиза.
Из PyPI
pip install pony-git
Проверка Установки
pony-git version
🚀 Быстрый старт
Первый push в новый репозиторий
# Подсказка по workflow
pony-git info
# Выполнение команд
pony-git init
pony-git add -m "Initial commit"
pony-git branch -M <branch_name>
pony-git remote add origin https://github.com/username/repo.git
pony-git push -M
Обновление существующего проекта
# Подсказка по обновлению
pony-git info --update
# Выполнение
pony-git status
pony-git add -m "Добавлена новая функция"
pony-git tag -a v1.0.1 -m "Патч релиз" # опционально
pony-git push
pony-git push --tags # если создавали тег
📚 Доступные команды
Основные операции
| Команда | Описание | Пример |
|---|---|---|
init |
Инициализация Git-репозитория | pony-git init |
add |
Добавление файлов + коммит | pony-git add -m "Fix bug" |
push |
Отправка изменений | pony-git push |
status |
Статус репозитория | pony-git status |
version |
Версия Git | pony-git version |
Управление ветками и тегами
| Команда | Описание | Пример |
|---|---|---|
branch |
Создание ветки | pony-git branch -M main |
tag |
Создание аннотированного тега | pony-git tag -a v1.0.0 -m "Release" |
Управление remote
| Команда | Описание | Пример |
|---|---|---|
remote list |
Список удалённых репозиториев | pony-git remote list -v |
remote add |
Добавление remote | pony-git remote add origin <URL> |
remote remove |
Удаление remote | pony-git remote remove origin |
Утилиты
| Команда | Описание | Пример |
|---|---|---|
info |
Подсказки по workflow | pony-git info / pony-git info --update |
remove |
Удаление файлов из Git | pony-git remove file.txt |
💻 Примеры использования
1. Работа с .gitignore
# ❌ Ошибка: нет .gitignore
pony-git add -m "Test"
# Error: .gitignore not found. Use --force to proceed.
# ✅ Принудительный коммит (с предупреждением)
pony-git add -m "Test" --force
# Warning: .gitignore not found
# ✅ Создайте .gitignore и всё будет работать
echo "*.pyc" > .gitignore
pony-git add -m "Test"
2. Статус репозитория
# Короткий формат (по умолчанию)
pony-git status
# Машиночитаемый формат
pony-git status --porcelain
3. Push с тегами
# Обычный push
pony-git push
# Push с тегами (одна команда)
pony-git push --tags
4. Удаление файлов
# Удалить из индекса, но оставить в файловой системе
pony-git remove secrets.txt
# Удалить полностью
pony-git remove secrets.txt --force
5. Работа вне Git-репозитория
cd /tmp/not-a-repo
pony-git status
# Error: Git repository not found
⚠️ Чем НЕ является
❌ Это НЕ замена Git
- Требует установленный Git в системе
- Выполняет Git-команды через
subprocess - Не переопределяет Git-функционал
❌ Это НЕ полноценный Git-клиент
- Ограниченный набор команд: только частые операции
- Нет сложных сценариев:
rebase,cherry-pick,bisect,stash,merge - Для продвинутых задач: используйте оригинальный Git
❌ Это НЕ GUI-приложение
- Только CLI (командная строка)
- Нет визуализации истории
- Нет графического интерфейса
❌ Это НЕ полная автоматизация
- Не разрешает конфликты автоматически
- Не заменяет понимание основ Git
- Не управляет pull-requests, issues, CI/CD
⚠️ Это НЕ production-ready (пока)
- Версия: 0.1.0 (Alpha)
- Ограниченная обработка edge cases
- Нужно больше тестирования в продакшене
🔧 Требования
- Python: >= 3.11
- Git: любая современная версия
- OS: Windows, Linux, macOS (кроссплатформенный)
🛠️ Разработка
Установка для разработки
# Клонирование
git clone https://github.com/PonyPaPony/PonyGM.git
cd PonyGM
# Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# Установка зависимостей
pip install -e .
pip install -r requirements.txt
Запуск тестов
# Все тесты
pytest
# С покрытием
pytest --cov=pony_git
# Конкретный модуль
pytest pony_git/tests/test_handlers_add.py
Структура проекта
pony_git/
├── parsers/ # Парсинг CLI-аргументов
│ ├── arguments.py # Определения аргументов
│ ├── builder.py # Построение главного парсера
│ └── register.py # Регистрация подкоманд
├── tests/ # Unit и integration тесты
├── config.py # Конфигурация команд
├── exceptions.py # Кастомные исключения
├── handlers.py # Логика обработки команд
├── main.py # Точка входа
├── runner.py # Выполнение Git-команд
└── validators.py # Валидация окружения
📝 Лицензия
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.
MIT License
Copyright (c) 2026 PonyPaPony (Denis)
🔗 Ссылки
- GitHub: PonyPaPony/PonyGM
- Issues: Сообщить о проблеме
- Автор: PonyPaPony
🎉 Благодарности
Спасибо всем, кто тестирует и улучшает этот проект!
Разработано с 🐴 от PonyPaPony
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pony_git-0.1.0.tar.gz.
File metadata
- Download URL: pony_git-0.1.0.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
075d62bde05eb8fc0079c2ca08534d62ca4b1be0a9fb7d2b7fb4257d05ccaa1a
|
|
| MD5 |
985eaa6cf544e89af5e53c300b6fc0f3
|
|
| BLAKE2b-256 |
9c6528f454241b45da07e598a137b92160e7b7cceae4b1a8860cc1331ce0eb05
|
File details
Details for the file pony_git-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pony_git-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d47c0f93f173a1f9fea27f4c50564289873f1381abdf038866670f95b2425a2
|
|
| MD5 |
5fca63fea4186c73dcf9a6bb27294c7c
|
|
| BLAKE2b-256 |
5beaa5817e4e7976da526b599f9fa4409ddc82b2703e16625087569662453c95
|