Настройка Git-репозитория для проекта 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка Git-репозитория для проекта 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка 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 дня