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

Git и Arma Reforger

К оглавлению руководства

Если вы создаёте миссию и ещё не пользовались Git, начните с этой страницы, чтобы сохранять историю изменений проекта.

Git хранит историю изменений проекта. Если после правок миссия перестала работать, можно посмотреть, что изменилось, и отменить неудачную правку. GitHub хранит копию репозитория в интернете, а GitHub Desktop позволяет работать с ним через привычный графический интерфейс.

В этом руководстве создадим репозиторий для учебного аддона Triad Desert Storm. Порядок действий подойдёт и для вашей миссии. Установите GitHub Desktop и войдите в свою учётную запись GitHub. Для создания аддона понадобятся Arma Reforger и Arma Reforger Tools.

Репозиторий — папка проекта вместе с историей его изменений. В GitHub Desktop выберите File → New repository.

В меню File выбран пункт New repository.
Создание репозитория в GitHub Desktop.Открыть оригинал изображения

В поле Name введите triad-desert-storm-ar. Называйте репозитории строчными латинскими буквами, разделяя слова дефисами:

  • triad — принадлежность к проекту Triad Tactics;
  • desert-storm — название миссии;
  • ar — сокращение от Arma Reforger.

Для собственной миссии вне Triad Tactics можно использовать desert-storm-ar или silent-port-ar. Придерживайтесь одного способа записи: так по названию проще найти миссию и понять, к какой игре она относится.

В Local path выберите родительскую папку:

Documents\My Games\ArmaReforgerWorkbench\addons

GitHub Desktop сам создаст в ней папку triad-desert-storm-ar. Проверьте итоговый путь внизу окна. В Description можно кратко описать миссию. Остальные параметры пока оставьте как на скриншоте и нажмите Create repository.

В окне Create a new repository указаны имя triad-desert-storm-ar и путь внутри ArmaReforgerWorkbench\addons.
Название репозитория и папка, в которой он будет создан.Открыть оригинал изображения

Запустите Arma Reforger Tools. В лаунчере выберите Add Project → Create New Project.

В Workbench Launcher раскрыто меню Add Project и указан пункт Create New Project.
Создание проекта в Workbench.Открыть оригинал изображения

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

В окне выбора папки открыт репозиторий triad-desert-storm-ar, внутри видна папка .git.
В Location выбираем корень репозитория.Открыть оригинал изображения

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

В New Project задано имя Triad Desert Storm, а Location заканчивается на triad-desert-storm-ar.
Имя аддона записано с пробелами; имя репозитория — строчными буквами через дефисы.Открыть оригинал изображения

Получится такая структура:

triad-desert-storm-ar/
├── .git/
└── Triad Desert Storm/
└── addon.gproj

Папка .git хранит историю репозитория. Файлы миссии будут находиться в папке аддона рядом с addon.gproj и во вложенных папках.

Дальнейшая настройка описана в руководстве «Как создать миссию». Здесь продолжим работу с Git. На следующих скриншотах в аддоне уже есть мир DemoWorld; для первого коммита достаточно файлов созданного проекта. Мир можно добавить позже.

Коммит — запись выбранных изменений в истории проекта. Сначала сохраните файлы в Workbench, затем откройте репозиторий в GitHub Desktop. Во вкладке Changes появятся новые и изменённые файлы.

Файл resourceDatabase.rdb — служебная база ресурсов Workbench. Его не нужно хранить в Git. Нажмите на него правой кнопкой мыши и выберите Ignore file (add to .gitignore).

Для resourceDatabase.rdb открыто контекстное меню с пунктом Ignore file (add to .gitignore).
Исключаем resourceDatabase.rdb из списка изменений.Открыть оригинал изображения

GitHub Desktop создаст файл .gitignore с правилом для этого пути. Сам .gitignore включите в коммит: правило должно сохраняться вместе с проектом. Игнорируемый файл остаётся на компьютере. Правило действует на файлы, которые ещё не были добавлены в историю Git.

Файлы addon.gproj, мира, слоёв, префабов и их .meta сохраняйте в репозитории. В .meta находятся данные ресурсов, в том числе их идентификаторы; исключать все такие файлы нельзя.

  1. Проверьте список Changes. Выберите файл, чтобы увидеть изменения справа. Галочками отмечены файлы, которые войдут в коммит.
  2. В Summary кратко опишите результат. На скриншоте это Add Demo World — добавление демонстрационного мира. Если пока создан только аддон, подойдёт Create mission project.
  3. Нажмите Commit … files to main. Число файлов на кнопке зависит от вашего проекта; main — название текущей ветки, в которой сохраняется история.
В Changes отмечены файлы проекта и .gitignore; введено Add Demo World и выделена кнопка Commit 5 files to main.
Сохранение файлов проекта в коммите.Открыть оригинал изображения

Во вкладке History появится ваш коммит. Пока он хранится только на компьютере.

Пишите, что изменилось. Названия update, fix или готово ничего не объясняют человеку, который откроет историю через неделю.

ИзменениеПример названия
Добавлен мир миссииAdd mission world
Исправлена радиостанция связистаFix radio operator equipment
Настроен захват портаConfigure port capture

Можно писать и по-русски: Добавить мир миссии, Исправить снаряжение связиста. Выберите один язык для проекта. В Description добавляйте причину изменения, если она не ясна из названия; для простой правки это поле можно оставить пустым.

Нажмите Publish repository в верхней части окна.

Во вкладке History виден коммит Add Demo World, сверху указана кнопка Publish repository.
Коммит создан; теперь отправим репозиторий на GitHub.Открыть оригинал изображения

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

Окно Publish repository с именем triad-desert-storm-ar; Keep this code private отключён.
Публикация репозитория и выбор его видимости.Открыть оригинал изображения

Откройте Repository → View on GitHub и проверьте, что файлы появились на сайте.

После каждого небольшого этапа повторяйте три действия:

  1. Сохраните файлы в Workbench. Git видит только изменения, записанные на диск.
  2. Создайте коммит в GitHub Desktop. Проверьте файлы и напишите понятное название.
  3. Нажмите Push origin. Коммиты отправятся в ваш репозиторий на GitHub.

Если вы работаете с нескольких компьютеров или вместе с другими авторами, перед началом нажмите Fetch origin, чтобы проверить изменения на GitHub. Если появилась кнопка Pull origin, получите их до редактирования миссии. Перед получением изменений сохраните свою работу коммитом и закройте Workbench; затем откройте проект заново.

Если ошибка появилась после конкретного коммита, можно отменить внесённые им изменения. Git создаст новый коммит с обратными изменениями; исходный останется в истории.

Сохраните текущие изменения отдельным коммитом и закройте Workbench. В History выберите коммит с ошибкой и посмотрите список его изменений. Нажмите на коммит правой кнопкой мыши и выберите Revert changes in commit.

В History открыто контекстное меню коммита Add Demo World и указан пункт Revert changes in commit.
Отмена изменений выбранного коммита.Открыть оригинал изображения

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

В History появился Revert Add Demo World; удалённые файлы отмечены красным, сверху кнопка Push origin.
Отмена записана новым коммитом и готова к отправке.Открыть оригинал изображения

Отменяются изменения выбранного коммита, а не все последующие действия. Если позже вы меняли те же строки, может возникнуть конфликт: Git попросит выбрать, какой вариант оставить. В такой ситуации сначала разберите сообщение об ошибке.

Если запутались в Git, дайте ИИ-помощнику ссылку на это руководство, приложите скриншот GitHub Desktop или полный текст ошибки. Напишите, что хотели сделать и какие изменения нужно сохранить.

Например: «Хочу отменить правку радиостанции, но сохранить добавленную после неё группу. Вот история коммитов. Объясни, какой коммит выбрать и что изменит отмена».

Кодинг-агент может посмотреть файлы и историю репозитория, помочь разобраться в конфликте или предложить название коммита по изменениям. Просите сначала объяснить действия и их последствия. Перед удалением файлов или изменением истории проверьте, что нужная работа сохранена.

Репозиторий Triad Shooting Star оформлен по описанным правилам. Используйте его как образец: посмотрите название, структуру папок и файл .gitignore, затем сравните со своим проектом.

Чтобы изучить саму миссию в Workbench, следуйте инструкции «Как открыть существующую миссию».

Теперь можно продолжить создание миссии.