Используйте git и git flow для разделения production и development веток.
Используйте примерно такой
.idea/
bower_components/
node_modules/
vendor/
composer.lock
*.sh
.keep
db/*-production.sql
logs/
tmp/
www/sitemap*.xml
www/bitrix/site_checker_*.log
www/bitrix/cache/
www/bitrix/catalog_export/
www/bitrix/html_pages/
www/bitrix/managed_cache/
www/bitrix/modules/serverfileerrorlog.dat
www/bitrix/modules/serverfilelog-*.dat
www/bitrix/modules/updater.log
www/bitrix/modules/updater_partner.log
www/bitrix/stack_cache/
www/bitrix/tmp/
www/bitrix/updates/
www/upload/*
!www/upload/watermark.png
.gitignore, чтобы не таскать кеш, все картинки и прочие загружаемые файлы в репозитарии, но некоторые файлы всё-таки таскать.
Подключите Selectel Storage или любое другое облачное хранилище (S3 или OpenStack совместимое) в админке сайта и максимально широко разрешите его использование; желательно, всем модулям без исключения. Таким образом вы получите одни и те же загруженные файлы на тестовом и боевом сервере, но без захламления репозитария.
Всю свою разработку (настройки, модули, шаблоны, компоненты) ведите в /local/ (в документации и на форумах 1С-Битрикс подробно описано, почему так надо).
/bitrix/ НЕ исключайте из репозитария, вопреки рекомендациям там же. В Битриксе регулярно приходят кривые обновления и лучше посмотреть git status и git diff прежде чем коммитить и выливать их на боевой сервер.