VCS Client (Git-клиент)
Полноценный Git-клиент, встроенный прямо в Unity Editor. Управляйте ветками, смотрите коммиты, разрешайте конфликты и выполняйте остальные операции Git, не выходя из Unity.
Купить в Unity Asset Store: VCSClient — Version Control for Git Repositories
Обзор
Git-клиент, сделанный под разработчиков на Unity. Ветки, коммиты, диффы и конфликты слияния — всё внутри редактора.
Из меню Tools > VCSClient открываются три окна:
| Окно | Пункт меню | Назначение |
|---|---|---|
| Git Client | Tools > VCSClient > Git Client | Граф коммитов, история, локальные и удалённые ветки |
| Git Status | Tools > VCSClient > Git Status | Индексация, сброс и коммит изменений |
| Git Diff Viewer | Tools > VCSClient > Git Diff Viewer | Построчное сравнение отдельного файла |
Четвёртое окно, Conflict Resolver (трёхстороннее слияние), пункта меню не имеет: оно открывается из Git Status, когда вы выбираете конфликтный файл после неудачного слияния.
Возможности
Работа с ветками
- Создание, переключение, переименование и удаление веток (локальных и удалённых)
- Push, pull и fetch с поддержкой удалённых репозиториев
- Force push и force checkout, когда это нужно
- Визуальные индикаторы связей между коммитами
- Слияние веток с автоматическим обнаружением конфликтов
Работа с коммитами
- Визуальный граф коммитов со связями веток и историей слияний
- Просмотр истории с автором, датой и сообщением
- Просмотр файлов, изменённых в каждом коммите
- Создание коммита с редактором сообщения
- Cherry-pick коммитов из других веток
- Операции reset (режимы hard, soft, mixed)
Работа с файлами
- Добавление и удаление из индекса отдельных файлов или папок
- Просмотр диффов для рабочей директории, индекса и конкретных коммитов
- Откат изменений на уровне файла или отдельной строки
- Удаление файлов из репозитория
- Сброс изменений до последнего закоммиченного состояния
- Показ файла в окне Project
Разрешение конфликтов
- Автоматическое обнаружение конфликтов при слиянии
- Трёхстороннее сравнение: HEAD, входящая версия и рабочая директория
- Панели рядом с синхронизированной прокруткой
- Разрешение выбором «ours» или «theirs» либо ручной правкой
- Отслеживание нескольких конфликтов внутри одного файла
- Прерывание или продолжение слияния
Поддержка Git LFS
- Инициализация Git LFS в репозитории
- Загрузка файлов Git LFS по требованию
Интерфейс
- Построен на Unity UI Elements
- Поддержка тёмной и светлой темы (автоматически подстраивается под тему редактора)
- Адаптивная раскладка с изменяемыми размерами панелей
- Древовидные представления для удобного просмотра файлов
- Контекстные меню для быстрых операций
- Граф коммитов с цветовой маркировкой веток
- Разделённые панели для экономии места
Как пользоваться
- Откройте:
Tools > VCSClient > Git Client(или Git Status / Git Diff Viewer) - Репозиторий: определяется автоматически в вашем проекте Unity
- Повседневная работа: Git Status — для индексации и коммитов, Git Client — для истории и веток, Diff Viewer — для сравнения и отката
- Конфликты: при конфликте слияния откройте конфликтный файл из Git Status — на нём откроется Conflict Resolver, где можно выбрать версию или отредактировать результат вручную
Окно Git Client: граф коммитов с цветовой маркировкой, список локальных и удалённых веток и панель деталей выбранного коммита.
Окно Git Status: проиндексированные и непроиндексированные файлы деревом, ниже поле сообщения коммита и кнопка Commit.
Conflict Resolver: Ours (HEAD), Working Directory и Theirs рядом, с кнопками Resolve Ours / Resolve Theirs и стрелками переноса отдельных блоков.
Архитектура
- Паттерн MVC для чистой организации кода
- Сервисный слой для операций Git
- Асинхронное выполнение команд с обработкой ошибок
- Событийная модель обновлений при изменении состояния репозитория
- Модульная структура с отдельными контроллерами для веток, коммитов и изменений
Настройки
Настройки находятся в Edit > Preferences > Git Client (пользовательская область — они следуют за вами между проектами, а не привязаны к репозиторию):
- Commit Limit: сколько коммитов подгружает история за раз. На очень больших репозиториях значение стоит уменьшить.
- Git Executable Path: по умолчанию
git, ищется черезPATH. Укажите конкретный бинарник, если Git не в PATH. - Use External Merge Tool / Merge Tool Path: передавать конфликты внешней программе сравнения вместо встроенного Conflict Resolver.
Технические детали
- Только редактор (на рантайм не влияет)
- Кросс-платформенность: Windows, macOS, Linux
- Вызывает системный исполняемый файл Git и разбирает его вывод для статуса, лога и диффов
- Отдельная обработка Unity-специфичного YAML
- Провайдер иконок для визуального различения типов файлов
Требования
- Unity 2020.3 LTS или новее
- Установленный Git, доступный через
PATH(или явно указанный в Preferences) - Проект Unity с инициализированным Git
Обработка ошибок и производительность
- Подробные сообщения об ошибках неудачных операций Git
- Проверка путей репозитория и существования файлов
- Обработка таймаутов для долгих команд Git
- Понятные диалоги подтверждений и ошибок
- Асинхронная загрузка истории коммитов и диффов
- Лимит коммитов настраивается в Preferences для больших репозиториев
Поддержка
По вопросам и пожеланиям пишите: nadirmanakhov@gmail.com
Другие инструменты: Командная строка | Редактор структур данных | Конвертер файлов