Перейти к основному содержимому

VCS Client (Git-клиент)

VCS Client

Полноценный Git-клиент, встроенный прямо в Unity Editor. Управляйте ветками, смотрите коммиты, разрешайте конфликты и выполняйте остальные операции Git, не выходя из Unity.

Купить в Unity Asset Store: VCSClient — Version Control for Git Repositories

Обзор​

Git-клиент, сделанный под разработчиков на Unity. Ветки, коммиты, диффы и конфликты слияния — всё внутри редактора.

Из меню Tools > VCSClient открываются три окна:

ОкноПункт менюНазначение
Git ClientTools > VCSClient > Git ClientГраф коммитов, история, локальные и удалённые ветки
Git StatusTools > VCSClient > Git StatusИндексация, сброс и коммит изменений
Git Diff ViewerTools > 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
  • Поддержка тёмной и светлой темы (автоматически подстраивается под тему редактора)
  • Адаптивная раскладка с изменяемыми размерами панелей
  • Древовидные представления для удобного просмотра файлов
  • Контекстные меню для быстрых операций
  • Граф коммитов с цветовой маркировкой веток
  • Разделённые панели для экономии места

Как пользоваться​

  1. Откройте: Tools > VCSClient > Git Client (или Git Status / Git Diff Viewer)
  2. Репозиторий: определяется автоматически в вашем проекте Unity
  3. Повседневная работа: Git Status — для индексации и коммитов, Git Client — для истории и веток, Diff Viewer — для сравнения и отката
  4. Конфликты: при конфликте слияния откройте конфликтный файл из Git Status — на нём откроется Conflict Resolver, где можно выбрать версию или отредактировать результат вручную
Главное окно Git Client

Окно Git Client: граф коммитов с цветовой маркировкой, список локальных и удалённых веток и панель деталей выбранного коммита.

Окно Git Status

Окно Git Status: проиндексированные и непроиндексированные файлы деревом, ниже поле сообщения коммита и кнопка Commit.

Conflict Resolver

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


Другие инструменты: Командная строка | Редактор структур данных | Конвертер файлов