Налаштування 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 дня |







