Git в проекте Битрикс
В Git-репозиторий помещаются только проектный каталог /local/ и публичные страницы сайта. Системные папки /bitrix/, загрузки /upload/, кеш и файлы с паролями к базе данных (.settings.php, dbconn.php) обязательно исключаются через .gitignore, а логика в коде не должна опираться на автоинкрементные числовые ID инфоблоков.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Git
-
2
.gitignore для Битрикс
-
3
Ветвление
Материалы
Официальная документация
-
Структура директорий: раздел «Папка /local» Новая дока
Проверь себя
Новый разработчик сделал git clone, и сайт не поднимается. Чего в репозитории нет и почему?
Ядра /bitrix (ставится дистрибутивом и обновлениями), /upload с файлами и секретов — bitrix/.settings.php, bitrix/php_interface/dbconn.php, license_key.php. Для разворачивания нужен дистрибутив или копия ядра, бэкап базы и upload, а секреты создаются на месте.
В .gitignore записали bitrix/ целиком. Что при этом потеряется?
Всё своё, что живёт внутри /bitrix: init.php в bitrix/php_interface, свои шаблоны в bitrix/templates, компоненты не из папки bitrix/bitrix. Либо переносить это в /local, либо исключать внутри /bitrix точечно: cache, managed_cache, stack_cache, html_pages, updates, modules.
Контент-менеджер правит страницы через админку, а вы деплоите из git. Что произойдёт?
Правка через визуальный редактор меняет файл на проде, и следующий деплой либо затрёт её, либо упрётся в конфликт. Либо страницы менеджера выводят из репозитория, либо контент переносят в инфоблоки и включаемые области, а файлы страниц считают кодом.
Почему в коде нельзя писать IBLOCK_ID => 12, если это работает?
На разработке, стейдже и проде инфоблоки создаются отдельно и получают разные ID. Код в git один на все окружения, поэтому инфоблок ищут по CODE или выносят ID в параметры компонента.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить