Перейти к содержимому

Git и выкладка проекта - что версионировать и как переносить

Проект на платформе в системе контроля версий выглядит иначе. Большая часть файлов принадлежит не вам, а платформе. Здесь собраны решения по этой теме.

Что общего у этих задач

Под контролем версий держат свой код, а не платформу. Каталог ядра и загрузки живут своей жизнью: их ставит и обновляет платформа. Их место - вне репозитория проекта.

Настройки стендов не хранятся вместе с кодом. Пароли базы и ключи сервисов отличаются на боевом сайте и на стенде. Поэтому их выносят из версионируемых файлов.

Выкладка - это перенос файлов плюс права. Файл, приехавший от другого владельца, платформа прочитает, но не перезапишет, и половина странностей после выкладки объясняется именно этим.

Выкладка - это не только файлы. Настройки, структура инфоблоков и права живут в базе, и без миграций боевой сайт получает новый код поверх старой структуры.

Решения подтемы

Частые вопросы

Нужно ли держать в репозитории каталог ядра?

Нет: он ставится и обновляется платформой и весит гигабайты. В репозитории держат свой код проекта.

Где хранить пароли и ключи?

Вне версионируемых файлов: в отдельном файле настроек стенда или в переменных окружения. В истории изменений им не место.

Как выкладывать правки на боевой сайт?

Переносом файлов с проверкой владельца и прав. Правка файлов прямо на боевом сайте лишает историю смысла.

Что делать с загруженными файлами?

Держать вне репозитория и переносить отдельно. Каталог загрузок растёт непредсказуемо и версий не требует.

Связанные темы

Первоисточники