Подключите свою учетную запись GitHub к сайту, и мы будем синхронизировать их в обоих направлениях. Это бесплатно, функция отключена, пока вы её не включите, и мы выполняем коммиты только в репозиторий вашей учетной записи — никогда в нашу.
Что синхронизируется
Любые изменения в файлах вашего сайта превращаются в коммит в вашем репозитории, независимо от того, как вы их внесли: через файловый менеджер, SFTP, редактор тем WordPress или сессию SSH. Вам не нужно сообщать нам об этом — мы сравниваем ваш сайт с его последним коммитом и отправляем разницу.
В обратном направлении: push в вашу подключенную ветку переносится на сайт.
Что мы никогда не коммитим
Ваш файл wp-config.php исключен намеренно и навсегда. Он содержит пароль вашей базы данных и соли аутентификации, которым не место в репозитории — даже в приватном, поскольку git сохраняет историю навсегда.
Также исключены: файлы .env, ключи и сертификаты, ваша папка uploads, кэши и node_modules. Репозиторий — это исходный код вашего сайта, а не резервная копия. Медиафайлам место в резервных копиях, где они уже хранятся, а их размещение здесь замедлит каждый push и сделает каждое изменение нечитаемым.
Что произойдет, если изменения внесены с обеих сторон
Это вопрос, на который стоит обратить внимание. Допустим, вы редактируете файл в файловом менеджере, и в это же время коллега отправляет изменение в тот же репозиторий.
Мы останавливаемся. Мы не выполняем слияние и никого не перезаписываем. Во вкладке сайта «Deploy» появится сообщение «В вашем репозитории есть изменения, которых мы еще не видели», будет указан коммит, на который нужно обратить внимание, и система будет ждать ваших действий. Пока она ждет, ничто не будет потеряно ни с одной стороны — ваша правка остается на сайте, а коммит коллеги — в репозитории.
Затем вы выбираете:
- Сохранить файлы этого сайта — мы поместим вашу версию поверх их версии. Их коммиты останутся в истории; ничто не удаляется.
- Использовать репозиторий, отменить изменения сайта — версия репозитория применяется к сайту, а изменения, внесенные вами здесь, отменяются. Это действие является деструктивным, поэтому оно требует осознанного клика и никогда не выполняется от вашего имени автоматически.
Вариант «выполнить слияние автоматически» намеренно отсутствует. Слияние, выполненное нами, создало бы файл, который никто из вас не писал, прямо на работающем сайте, и никто из вас не увидел бы его заранее.
Почему синхронизация может остановиться
- вы не подключили свою учетную запись GitHub. Переключатель останется выключенным, пока вы этого не сделаете.
- Ожидаются ваши действия. Смотрите выше — удержание не снимется само по себе.
- ваша учетная запись не имеет хорошей репутации. Синхронизация приостанавливается и возобновляется автоматически, как только оплата будет урегулирована. Ничего не теряется.
Во вкладке «Deploy» отображаются последние несколько синхронизаций, включая те, при которых ничего не изменилось. Если этот список пуст, а синхронизация включена, скорее всего, подключенная учетная запись не может выполнять запись в репозиторий — проверьте права доступа и выполните переподключение.
Выбор объектов синхронизации
По умолчанию синхронизируется весь сайт. На сайте WordPress это обычно не то, что вам нужно: это означает каждый файл ядра WordPress, который вы не писали и не будете редактировать. Установите для параметра «Синхронизировать только эту папку» путь к вашей теме — например, wp-content/themes/my-theme — и остальное останется нетронутым.