Git и Arma Reforger
Если вы создаёте миссию и ещё не пользовались Git, начните с этой страницы, чтобы сохранять историю изменений проекта.
Git хранит историю изменений проекта. Если после правок миссия перестала работать, можно посмотреть, что изменилось, и отменить неудачную правку. GitHub хранит копию репозитория в интернете, а GitHub Desktop позволяет работать с ним через привычный графический интерфейс.
В этом руководстве создадим репозиторий для учебного аддона UF Desert Storm. Порядок действий подойдёт и для вашей миссии. Установите GitHub Desktop и войдите в свою учётную запись GitHub. Для создания аддона понадобятся Arma Reforger и Arma Reforger Tools.
Создание репозитория
Заголовок раздела «Создание репозитория»Репозиторий — папка проекта вместе с историей его изменений. В GitHub Desktop выберите File → New repository.

В поле Name введите uf-desert-storm-ar. Называйте репозитории строчными латинскими буквами, разделяя слова дефисами:
uf— принадлежность к проекту ULTRVFAMILY;desert-storm— название миссии;ar— сокращение от Arma Reforger.
Для собственной миссии вне ULTRVFAMILY можно использовать desert-storm-ar или silent-port-ar. Придерживайтесь одного способа записи: так по названию проще найти миссию и понять, к какой игре она относится.
В Local path выберите родительскую папку:
Documents\My Games\ArmaReforgerWorkbench\addonsGitHub Desktop сам создаст в ней папку uf-desert-storm-ar. Проверьте итоговый путь внизу окна. В Description можно кратко описать миссию. Остальные параметры пока оставьте как на скриншоте и нажмите Create repository.

Создание аддона внутри репозитория
Заголовок раздела «Создание аддона внутри репозитория»Запустите Arma Reforger Tools. В лаунчере выберите Add Project → Create New Project.

В Project Name введите UF Desert Storm. Рядом с Location нажмите кнопку с папкой, выберите созданную папку uf-desert-storm-ar и нажмите Select Folder.

Проверьте название и путь, затем нажмите Create. Workbench сам создаст внутри репозитория папку аддона UF Desert Storm.

Получится такая структура:
uf-desert-storm-ar/├── .git/└── UF Desert Storm/ └── addon.gprojПапка .git хранит историю репозитория. Файлы миссии будут находиться в папке аддона рядом с addon.gproj и во вложенных папках.
Дальнейшая настройка описана в руководстве «Как создать миссию». Здесь продолжим работу с Git. На следующих скриншотах в аддоне уже есть мир DemoWorld; для первого коммита достаточно файлов созданного проекта. Мир можно добавить позже.
Первый коммит
Заголовок раздела «Первый коммит»Коммит — запись выбранных изменений в истории проекта. Сначала сохраните файлы в Workbench, затем откройте репозиторий в GitHub Desktop. Во вкладке Changes появятся новые и изменённые файлы.
Исключение служебного файла
Заголовок раздела «Исключение служебного файла»Файл resourceDatabase.rdb — служебная база ресурсов Workbench. Его не нужно хранить в Git. Нажмите на него правой кнопкой мыши и выберите Ignore file (add to .gitignore).

GitHub Desktop создаст файл .gitignore с правилом для этого пути. Сам .gitignore включите в коммит: правило должно сохраняться вместе с проектом. Игнорируемый файл остаётся на компьютере. Правило действует на файлы, которые ещё не были добавлены в историю Git.
Файлы addon.gproj, мира, слоёв, префабов и их .meta сохраняйте в репозитории. В .meta находятся данные ресурсов, в том числе их идентификаторы; исключать все такие файлы нельзя.
Сохранение изменений в истории
Заголовок раздела «Сохранение изменений в истории»- Проверьте список Changes. Выберите файл, чтобы увидеть изменения справа. Галочками отмечены файлы, которые войдут в коммит.
- В Summary кратко опишите результат. На скриншоте это
Add Demo World— добавление демонстрационного мира. Если пока создан только аддон, подойдётCreate mission project. - Нажмите Commit … files to main. Число файлов на кнопке зависит от вашего проекта;
main— название текущей ветки, в которой сохраняется история.

Во вкладке History появится ваш коммит. Пока он хранится только на компьютере.
Названия коммитов
Заголовок раздела «Названия коммитов»Пишите, что изменилось. Названия update, fix или готово ничего не объясняют человеку, который откроет историю через неделю.
| Изменение | Пример названия |
|---|---|
| Добавлен мир миссии | Add mission world |
| Исправлена радиостанция связиста | Fix radio operator equipment |
| Настроен захват порта | Configure port capture |
Можно писать и по-русски: Добавить мир миссии, Исправить снаряжение связиста. Выберите один язык для проекта. В Description добавляйте причину изменения, если она не ясна из названия; для простой правки это поле можно оставить пустым.
Публикация репозитория на GitHub
Заголовок раздела «Публикация репозитория на GitHub»Нажмите Publish repository в верхней части окна.

Проверьте Name и Description. Флажок Keep this code private определяет доступ: с ним репозиторий будет закрытым, без него файлы и историю смогут просматривать другие люди. На скриншоте выбран открытый репозиторий. Для публикации в своей учётной записи оставьте Organization → None и нажмите Publish repository.

Откройте Repository → View on GitHub и проверьте, что файлы появились на сайте.
Как сохранять дальнейшую работу
Заголовок раздела «Как сохранять дальнейшую работу»После каждого небольшого этапа повторяйте три действия:
- Сохраните файлы в Workbench. Git видит только изменения, записанные на диск.
- Создайте коммит в GitHub Desktop. Проверьте файлы и напишите понятное название.
- Нажмите Push origin. Коммиты отправятся в ваш репозиторий на GitHub.
Если вы работаете с нескольких компьютеров или вместе с другими авторами, перед началом нажмите Fetch origin, чтобы проверить изменения на GitHub. Если появилась кнопка Pull origin, получите их до редактирования миссии. Перед получением изменений сохраните свою работу коммитом и закройте Workbench; затем откройте проект заново.
Отмена неудачного коммита
Заголовок раздела «Отмена неудачного коммита»Если ошибка появилась после конкретного коммита, можно отменить внесённые им изменения. Git создаст новый коммит с обратными изменениями; исходный останется в истории.
Сохраните текущие изменения отдельным коммитом и закройте Workbench. В History выберите коммит с ошибкой и посмотрите список его изменений. Нажмите на коммит правой кнопкой мыши и выберите Revert changes in commit.

В истории появится коммит Revert "…". Проверьте результат в Workbench и нажмите Push origin, чтобы отправить отмену на GitHub.

Отменяются изменения выбранного коммита, а не все последующие действия. Если позже вы меняли те же строки, может возникнуть конфликт: Git попросит выбрать, какой вариант оставить. В такой ситуации сначала разберите сообщение об ошибке.
Помощь ИИ
Заголовок раздела «Помощь ИИ»Если запутались в Git, дайте ИИ-помощнику ссылку на это руководство, приложите скриншот GitHub Desktop или полный текст ошибки. Напишите, что хотели сделать и какие изменения нужно сохранить.
Например: «Хочу отменить правку радиостанции, но сохранить добавленную после неё группу. Вот история коммитов. Объясни, какой коммит выбрать и что изменит отмена».
Кодинг-агент может посмотреть файлы и историю репозитория, помочь разобраться в конфликте или предложить название коммита по изменениям. Просите сначала объяснить действия и их последствия. Перед удалением файлов или изменением истории проверьте, что нужная работа сохранена.
Пример оформленного репозитория
Заголовок раздела «Пример оформленного репозитория»Репозиторий UF Shooting Star оформлен по описанным правилам. Используйте его как образец: посмотрите название, структуру папок и файл .gitignore, затем сравните со своим проектом.
Чтобы изучить саму миссию в Workbench, следуйте инструкции «Как открыть существующую миссию».
Теперь можно продолжить создание миссии.