Настройка Git для Битрикс
В битрикс большинство страниц хранятся как физические файлы на сервере, это дает нам возможность отслеживать их через гит.
В корне сайта из гит убираем .htaccess и robots.txt, в них часто прописывается хост сайта.
В корне сайта еще бывают файлы IDE разработчиков, xml карты сайта, некоторые любят дампы базы данных держать в кроне сайта, не пускаем всё это в гит.
Небольшой размер репозитория ускоряет git clone, коммиты и сборку для деплоя. Не очень сложный .gitignore упрощает его администрирование, объем папки .git должен быть не более 100M.
Ниже представлен .gitignore, который помимо прочего исключают из репозитория документы и изображения. Необходимость хранения/исключения контента из репозитория зависит от конкретной ситуации, требования могут предъявляться разные. Здесь предполагается, что контент по умолчанию в репозитории не хранится, что репозиторий используется только для хранения кода, а вопрос возможности восстановления исторических версий контента решается системой резервного копирования.
Ядро, которое хранится в папке bitrix не должно попасть в репозиторий, причина кроется в большом количестве файлов и сложности администрирования. Предполагается, что для отслеживания его изменений или возможности отката используется резервное копирование.
Выкладываю оптимальный .gitignore для Bitrix, который максимально отслеживает всё файлы и не видит ядро:
.gitignore# исключаем все файлы в корне проекта. Здесь часто лежат файлы, индивидуальные для окружения, где разворачивается сайт (Dockerfile, .env и пр.) и временные файлы для разработки (dump.sql и пр.)
/*
# файл .gitignore нужен
!/.gitignore
# нужно содержимое папки www, нужно контролировать изменения страниц сайта
!/www
!/www/*
!/www/**
# исключаем папку bitrix, там по большей части ядро Битрикс, хранить в репозитории нет необходимости
/www/bitrix/*
# явно исключаем кеш и временные папки, на случай если само ядро Битрикс все же будет храниться в репозитории
/www/bitrix/managed_cache
/www/bitrix/stack_cache
/www/bitrix/cache
/www/bitrix/html_pages
/www/bitrix/tmp
# храним php_interface, здесь размещается init.php и сопутствующий код, изменения которого нужно контролировать
!/www/bitrix/php_interface
!/www/bitrix/php_interface/*
!/www/bitrix/php_interface/**
# в файле хранятся настройки БД, исключаем
/www/bitrix/php_interface/dbconn.php
# храним шаблоны сайтов
!/www/bitrix/templates/
!/www/bitrix/templates/*
!/www/bitrix/templates/**
# .htaccess на каждом сервере свой, если требуется хранить изменения .htaccess боевого сайта, его нужно хранить в другом файле и изменять имя при деплое
/www/.htaccess
# файлы постоянно изменяются, они могут быть в любой момент сгенерированы заново и на самом деле меняются практически каждый день, поэтому хранить в репозитории их нет смысла
/www/sitemap_iblock*
/www/sitemap_files*
/www/sitemap.xml
# исключаем все загруженные файлы
/www/upload
# маски файлов
*.log
*.gz
*.bz
*.bz2
*.tar
*.zip
*.rar
*.7z
Создание Git для сайта
Проще всего создавать гит, когда у вас только 1 сайт, а тестовые делать когда система управления версиями готова.
Когда у нас только один сайт, достаточно: в папке сайта инициализировать гит, установить гитигнор, добавить все файлы в гит, закоммитить.
- Установить гитигнор
- В корне сайта инициализировать гит
- Добавить все файлы в гит
- Закоммитить