Настройка Git-репозитория для проекта 1С-Битрикс
Добавить Битрикс-проект в git — задача нетривиальная. Ядро платформы весит полгигабайта, содержит бинарные файлы и обновляется не через код-ревью, а через собственный updater. Если добавить /bitrix/ в репозиторий, первый же git push будет загружать сотни мегабайт, а история коммитов превратится в свалку из изменений ядра. Правильная настройка репозитория — это прежде всего чёткий ответ на вопрос: что вообще должно лежать в git.
Что хранить в git, что нет
В репозиторий входит только то, что разрабатывает команда:
local/ ✅ — все кастомные компоненты, модули, шаблоны
.env.example ✅ — пример конфигурации без секретов
deploy/ ✅ — скрипты деплоя, docker-compose
nginx.conf.example ✅ — шаблон конфига веб-сервера
Вне репозитория:
bitrix/ ❌ — ядро платформы
upload/ ❌ — пользовательский контент
.env ❌ — секреты
bitrix/php_interface/dbconn.php ❌ — параметры БД
Базовый .gitignore
# Ядро Битрикс
/bitrix/
# Пользовательский контент
/upload/
# Конфигурация с секретами
/.env
/bitrix/php_interface/dbconn.php
# Кеш
/bitrix/cache/
/bitrix/managed_cache/
/bitrix/stack_cache/
# IDE
/.idea/
/.vscode/
*.swp
# Node.js (если используется в local/)
/local/node_modules/
/local/.npm/
# OS
.DS_Store
Thumbs.db
Инициализация существующего проекта
Если проект уже существует на сервере и git не был настроен с самого начала:
cd /var/www/myshop
# Инициализируем репозиторий
git init
git remote add origin [email protected]:projects/myshop.git
# Создаём .gitignore ПЕРЕД первым add
# (добавляем его содержимое из примера выше)
nano .gitignore
# Добавляем только /local/ и конфиги
git add local/
git add .gitignore
git add deploy/
git add nginx.conf.example
git add .env.example
git commit -m "Initial commit: local customizations"
git push -u origin main
Если случайно добавили /bitrix/ в индекс до создания .gitignore:
git rm -r --cached bitrix/
git rm -r --cached upload/
git commit -m "Remove bitrix/ and upload/ from tracking"
Ветки и workflow
Для Битрикс-проектов хорошо работает упрощённый GitFlow:
main — продакшн-код, деплоится только через CI
develop — основная ветка разработки, деплоится на staging автоматически
feature/* — задачи (feature/JIRA-123-new-filter)
hotfix/* — срочные правки продакшна
Соглашение по коммитам — Conventional Commits:
feat(catalog): add ajax filter component
fix(checkout): fix payment handler null reference
refactor(local): move common functions to helpers
Работа с конфигурационными файлами
Параметры подключения к БД и другие секреты — в .env, который не коммитится. В bitrix/php_interface/dbconn.php они подтягиваются через $_ENV или getenv():
// dbconn.php — НЕ в git, создаётся на сервере вручную или через деплой-скрипт
$DBHost = getenv('DB_HOST') ?: 'localhost';
$DBLogin = getenv('DB_USER') ?: 'bitrix';
$DBPassword = getenv('DB_PASSWORD') ?: '';
$DBName = getenv('DB_NAME') ?: 'bitrix_db';
.env.example коммитится и содержит ключи без значений:
DB_HOST=
DB_USER=
DB_PASSWORD=
DB_NAME=
SMTP_HOST=
Сроки
| Задача | Срок |
|---|---|
| Настройка .gitignore, инициализация репозитория | 0.5 дня |
| Перенос существующего проекта в git | 0.5 дня |
| Настройка веток и правил слияния | 0.5 дня |







