Skip to content

Instantly share code, notes, and snippets.

@cronfy
Created December 4, 2020 22:16
Show Gist options
  • Save cronfy/fd1050823404b8bc790eef675244bd07 to your computer and use it in GitHub Desktop.
Save cronfy/fd1050823404b8bc790eef675244bd07 to your computer and use it in GitHub Desktop.
типовой .gitignore для битрикса
#
# .gitignore для сайтов на bitrix
#
#
# Файлы в репозитории должны храниться не все, а только некоторые. Основная цель: упростить процесс разработки.
# Для этого нужно: маленький репозиторий, который, тем не менее, включает в себя все нужное, и не чересчур
# сложный .gitignore.
# Небольшой размер репозитория ускоряет clone, коммиты и сборку для деплоя. Не очень сложный .gitignore
# упрощает его администрирование.
# Критерий: объем папки .git должен быть не более 100M, в идеале - не более 50M.
#
# Ниже присутствуют правила, которые помимо прочего исключают из репозитория контент (документы, изображения)
# или рекомендации так делать. Необходимость хранения/исключения контента из репозитория зависит от конкретной
# ситуации, требования могут предъявляться разные. Здесь предполагается, что контент по умолчанию в репозитории
# не хранится, что репозиторий используется только для хранения кода, а вопрос возможности восстановления
# исторических версий контента решается системой резервного копирования.
#
# Тем не менее, небольшие документы/изображения допустимо хранить в репозитории (чтобы не усложнять .gitignore),
# при соблюдении требований к размеру папки .git, указанных выше.
#
# Изображения шаблонов (элементы дизайна) хранятся в репозитории.
#
# Ядро bitrix/ не хранится в репозитории из-за большого количества/объема файлов, сложности администрирования.
# Предполагается, что ядро синхронизируется с боевым сервером rsync'ом или другими способами, а для отслеживания
# его изменений или возможности отката используется резервное копирование.
#
# Если папка .git после применения этого .gitignore получается слишком большой, нужно посмотреть, что еще можно
# исключить из репозитория и добавить эти исключения в соответствующую секцию в конец файла. Некоторые рекомендации:
#
# - документы (doc, pdf) - являются контентом, их либо можно вынести в upload/ (желательно изначально их
# туда и загружать), либо вручную поштучно исключить;
# - архивы (как правило это либо то же самое, что документы, либо просто временные файлы);
# - изображения - если это не изображения шаблона, а просто картинки сайта (контент), их имеет смысл
# перенести в upload/ так как это контент;
# - изображения шаблона - в том случае, если в шаблон случайно попали на самом деле не изображения шаблона,
# а контент страниц;
# - бэкапы;
# - старые папки/файлы (вида *_old), что в целом равнозначно бэкапам;
# - прочие файлы, которые генерируются (выгрузки, экспорты, карта сайта и т. п.);
# - логи, временные файлы, кеш.
#
# ИСКЛЮЧЕНИЯ
#
# Исключаем все файлы в корне проекта. Здесь часто лежат файлы, индивидуальные для окружения, где разворачивается
# сайт (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
# Таким образом, файлы, лежащие непосредственно в папке bitrix/ (например, settings.php), также оказались исключены.
# Так и задумано.
# Храним шаблоны сайтов.
!/www/bitrix/templates/
!/www/bitrix/templates/*
!/www/bitrix/templates/**
# .htaccess на каждом сервере свой, исключаем.
# Если требуется хранить изменения .htaccess боевого сайта, его нужно хранитьв другом файле и устанавливать
# при деплое.
/www/.htaccess
# Часто используемая папка для временных файлов
/www/tmp
# Эти файлы постоянно изменяются. Их первоисточник - база данных, они могут быть в любой момент сгенерированы
# заново и на самом деле меняются практически каждый день, поэтому хранить в репозитории их нет смысла.
# файлы не
/www/sitemap_iblock*
/www/sitemap_files*
/www/sitemap.xml
/www/y-market/*.xml
# Слишком большой объем для хранения в репозиторий. Нужно также договариваться, чтобы менеджеры контента
# размещали здесь документы, изображения и прочее (часто они загружают документы прямо в корень сайта,
# что неудобно при работе с репозиторием).
/www/upload
# Архивы в корне сайта используются для передачи информации на сайт, это временные файлы.
/www/*.zip
/www/*.rar
/www/*.tar.gz
# Это импорт инфоблоков. Они будут исключены также маской архивов выше, но для большей ясности пусть
# для них будет полностью независимая запись в .gitignore.
/www/*_files
/www/*_files.zip
/www/*_files.tar.gz
# битрикс делает?
/www/.htaccess_back*
# Там мы будем называть свои временные скрипты для тестов и не будем хранить их в репозитории.
/www/dev-*
# Файлы, которые часто создают хостинги (и забывают удалить).
/www/.well-known
#
# Маски файлов.
#
# Эти файлы всегда игнорируем, так как в 99% случаев их не нужно хранить в репозитории.
# Для оставшегося 1% нужно прописать исключения вручную.
# логи
*.log
# Архивы (в том числе не в корне сайта), в большинстве случаев используются, чтобы что-нибудь загрузить.
# Это дублирует маски архивов выше, но так как комментарии разные, оставим для ясности. Если будет необходимость
# отключить глобальное исключение архивов, не отключатся продублированные выше более узкие исключения.
*.gz
*.bz
*.bz2
*.tar
*.zip
*.rar
*.7z
# Операционки делают
.DS_Store
Thumbs.db
# vim
*.swp
*.swo
*.swq
# бэкапы
*.bak
*.BAK
#
# ИСКЛЮЧЕНИЯ ПРОЕКТА
# Далее можно добавлять исключения (или антиисключения), индивидуальные для проекта.
#
# Частые ситуации (раскомментировать при необходимости)
## composer
#!/composer.json
#!/composer.lock
## vendor/. Если процесс деплоя не предполагает полную сборку перед деплоем (проще говоря, "деплой через git pull"),
## приходится хранить его в репозитории. Не рекомендуется, но встречается.
#!/vendor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment