← Назад к вопросам

Как использовать версионный контроль (Git) в Unity проектах? Какие файлы следует игнорировать?

2.3 Middle🔥 182 комментариев
#C# и ООП

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Работа с Git в Unity: ключевые аспекты

Использование системы контроля версий Git в Unity-проектах — критически важная практика для профессиональной разработки. Unity имеет специфичную структуру файлов, требующую правильной настройки.

Настройка Git для Unity-проекта

Первым шагом является инициализация репозитория и настройка корректного .gitignore файла. Рекомендую использовать официальный шаблон от Unity, который регулярно обновляется.

# Инициализация репозитория в корне проекта
git init

# Добавление удаленного репозитория (GitHub, GitLab, etc.)
git remote add origin <URL-репозитория>

Ключевые файлы для отслеживания в Git

Несмотря на обширный список игнорируемых файлов, следующие категории обязательно должны коммититься:

  • Ассеты проекта: .cs скрипты, префабы, материалы, анимации, настройки
  • Мета-файлы (.meta): ВАЖНО! Эти файлы связывают GUID с ассетами
  • Настройки проекта: ProjectSettings/, Packages/manifest.json
  • Пользовательские редакторские скрипты и расширения

Файлы и папки для добавления в .gitignore

Основные правила игнорирования для Unity:

# Автогенерируемые файлы Unity
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/

# Файлы IDE
.vs/
.vscode/
*.sln
*.csproj
*.userprefs

# Кэши и временные файлы
*.pidb
*.db
*.opendb

# Файлы операционных систем
.DS_Store
Thumbs.db

# Файлы пакетного менеджера (кроме manifest.json)
/[Pp]ackages/*

# Файлы билдов
*.apk
*.aab
*.ipa
*.app
*.exe
*.unitypackage

# Дополнительные игнорирования для разных платформ
/[Aa]ssets/AssetStoreTools
/Assets/Plugins/Android/*.aar

Особенности работы с мета-файлами

Мета-файлы (.meta) — это самый важный аспект контроля версий в Unity. Они содержат уникальные идентификаторы (GUID) для каждого ассета. Без них в проекте возникнут конфликты и "сломанные" ссылки.

# Пример структуры .meta файла
fileFormatVersion: 2
guid: a58c3b03e1a248d4db15f2c7f6cb3a5a
TextureImporter:
  internalIDToNameTable: []

Рекомендуемые практики работы

  1. Используйте Visible Meta Files в настройках редактора

    • Edit → Project Settings → Editor
    • Version Control Mode: "Visible Meta Files"
    • Asset Serialization Mode: "Force Text"
  2. Регулярные коммиты с осмысленными сообщениями

    git add .
    git commit -m "Добавлена система инвентаря: базовые классы и UI префабы"
    
  3. Работа с бинарными файлами

    • Для больших бинарных файлов (текстуры, аудио, видео) рассмотрите Git LFS
    • Настройте LFS для соответствующих расширений:
    git lfs track "*.psd"
    git lfs track "*.wav"
    git lfs track "*.mp4"
    
  4. Коллаборация в команде

    • Всегда пуллить изменения перед началом работы
    • Регулярно коммитить законченные функции
    • Использовать ветки для отдельных фич/багфиксов

Автоматизация и инструменты

  • Git Hooks: Автоматическое форматирование кода перед коммитом
  • Git Submodules: Для общих библиотек между проектами
  • CI/CD интеграция: Автоматические билды при пуше в определенные ветки

Распространенные проблемы и решения

  • Конфликты в .meta файлах: Решаются через перегенерацию GUID для конфликтующих ассетов
  • Пропавшие ссылки в сценах: Чаще всего возникают при некорректной работе с мета-файлами
  • Большие размеры репозитория: Используйте Git LFS и очистку истории

Правильная настройка Git в Unity-проекте экономит сотни часов на решении проблем с конфликтами и "сломанными" проектами. Инвестируйте время в первоначальную настройку — это окупится на протяжении всего жизненного цикла проекта.

Как использовать версионный контроль (Git) в Unity проектах? Какие файлы следует игнорировать? | PrepBro