Системы контроля версий
Введение
Godot стремится быть дружественным к системам контроля версий и генерировать в основном читаемые и объединяемые файлы.
Плагины контроля версий
Godot также поддерживает использование систем контроля версий в самом редакторе. Однако для контроля версий в редакторе требуется плагин для конкретной системы управления версиями, которую вы используете.
As of October 2025, there is only a Git plugin available, but the community may create additional VCS plugins.
Официальный плагин для Git
Использование Git из редактора поддерживается официальным плагином. Вы можете найти последние версии на GitHub.
Документацию по использованию плагина Git можно найти на его wiki.
Файлы, которые необходимо исключить из систем контроля версий
Примечание
Здесь перечислены файлы и папки, которые следует игнорировать при контроле версий в Godot 4.1 и более поздних версиях.
Список файлов папок, которые следует игнорировать при контроле версий в Godot 3.x и Godot 4.0, совершенно разный. Это важно, поскольку Godot 3.x и 4.0 могут хранить конфиденциальные учетные данные в файле export_presets.cfg (в отличие от Godot 4.1 и более поздних версий).
If you are using Godot 3, check the 3.6 version of this documentation page
instead.
Некоторые файлы и папки Godot создает автоматически при первом открытии проекта в редакторе. Чтобы избежать переполнения репозитория контроля версий сгенерированными данными, вам следует добавить их в игнор контроля версий:
.godot/: В этой папке хранятся различные данные кэша проекта.*.translation: Эти файлы представляют собой переводы, сгенерированные из файлов контроля версий.
Вы можете заставить менеджер проектов Godot автоматически генерировать метаданные для контроля версий при создании проекта. При выборе опции Git в корне проекта создаются файлы .gitignore и .gitattributes:
Создание метаданных для контроля версий в диалоговом окне Новый проект менеджера проектов
В существующих проектах выберите меню Проект в верхней части редактора, затем выберите Контроль версий > Создание метаданных контроля версий. При этом создаются те же файлы, как если бы операция выполнялась в менеджере проекта.
Работа с Git на Windows
Большинство клиентов Git для Windows настроены с параметром core.autocrlf, установленным в значение true. Это может привести к тому, что файлы будут без необходимости помечены Git как измененные, поскольку окончания их строк автоматически преобразуются из LF в CRLF.
Лучше установить этот параметр как:
git config --global core.autocrlf input
При создании метаданных контроля версий с помощью менеджера проекта или редактора автоматически применяются окончания строк LF с использованием файла .gitattributes. В этом случае вам не нужно менять конфигурацию Git.
Git LFS
GIT LFS (большое хранилище файлов) - это расширение GIT, которое позволяет управлять большими файлами в вашем репозитории. Он заменяет большие файлы с помощью текстовых указателей внутри git, сохраняя содержимое файла на удаленном сервере. Это полезно для управления большими активами, такими как текстуры, аудиофайлы и 3D -модели, без применения репозитория GIT.
Примечание
При использовании GIT LFS вы захотите убедиться, что он будет настроен, прежде чем совершать какие -либо файлы в свой репозиторий. Если вы уже совершили файлы в свой репозиторий, вам нужно будет удалить их из репозитория и повторно добавить их после настройки Git LFS.
Можно использовать git lfs migrate для преобразования существующих файлов в вашем хранилище, но это более глубокая яма и требует хорошего понимания git.
Общим подходом является настройка нового репозитория с GIT LFS (и правильным .gitattributes), а затем копирование файлов из старого репозитория в новый. Таким образом, вы можете убедиться, что все файлы отслеживаются LFS с самого начала.
Чтобы использовать GIT LFS с Godot, вам необходимо установить расширение GIT LFS и настроить его для отслеживания типов файлов, которыми вы хотите управлять. Вы можете сделать это, выполнив следующую команду в вашем терминале:
git lfs install
Это создаст файл .gitattributes в вашем репозитории, который говорит GIT использовать LFS для указанных типов файлов. Вы можете добавить больше типов файлов, изменяя файл .gitattributes. Например, чтобы отслеживать все файлы GLB, вы можете сделать это, выполнив следующую команду в своем терминале:
git lfs track "*.glb"
Когда вы добавляете или изменяете файлы, которые отслеживаются LFS, GIT автоматически сохранит их в LFS вместо обычной истории GIT. Вы можете нажимать и вытащить файлы LFS, как обычные файлы GIT, но имейте в виду, что файлы LFS хранятся отдельно от остальной части вашей истории GIT. Это означает, что вам может потребоваться установить GIT LFS на любую машину, которую вы клонируете репозиторий, чтобы получить доступ к файлам LFS.
Ниже приведен пример .gitattributes файл, который вы можете использовать в качестве отправной точки для GIT LFS. Эти типы файлов были выбраны из-за того, что они обычно используются, но вы можете изменить список, чтобы включить любые бинарные типы, которые вы можете иметь в вашем проекте.
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf
# Git LFS Tracking (Assets)
# 3D Models
*.fbx filter=lfs diff=lfs merge=lfs -text
*.gltf filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
# Images
*.png filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.dds filter=lfs diff=lfs merge=lfs -text
# Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
# Font & Icon
*.ttf filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
*.ico filter=lfs diff=lfs merge=lfs -text
# Godot LFS Specific
*.scn filter=lfs diff=lfs merge=lfs -text
*.res filter=lfs diff=lfs merge=lfs -text
*.material filter=lfs diff=lfs merge=lfs -text
*.anim filter=lfs diff=lfs merge=lfs -text
*.mesh filter=lfs diff=lfs merge=lfs -text
*.lmbake filter=lfs diff=lfs merge=lfs -text
Для получения дополнительной информации о GIT LFS, проверьте официальную документацию: https://git-lfs.github.com/ и https://docs.github.com/en/repositories/working-with-files/managing-large-files.