Налаштування Git-репозиторію для проекту 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування Git-репозиторію для проекту 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування Git-репозиторію для проекту 1С-Бітрікс

Додати Бітрікс-проект у git — завдання нетривіальне. Ядро платформи важить пів гігабайта, містить бінарні файли та оновлюється не через code review, а через власний 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 дня