Git в WordPress

Вероятно, вы уже знакомы с Git, или слышали о нём. Если хотите подтянуть свои знания о работе с Git, внизу есть список источников для самостоятельного изучения.

Преимущества использования Git в WordPress

  • Возможность отслеживать файлы и папки, а также время их изменения;
  • Возможность в случае необходимости сделать легкий откат;
  • Упрощение паралельной разработки сайта в команде;
  • Упрощение тестирования, отладки и переноса кода.

Структура вашего репозитория

Какие файлы и папки вы будете отслеживать?

  • Весь корневой каталог;
  • или папку отдельного шаблона/плагина?

Зависит от ваших целей. Если вы разрабатываете тему, и знаете, что будете отслеживать только её, вы можете создать репозиторий Git прямо в ней. Если вы не уверены, создайте Git в корне вашего WordPress сайта. Рекомендуется в этом случае «заигнорить» ряд файлов и папок.

Пример .gitignore

*.log
wp-config.php
wp-content/advanced-cache.php
wp-content/backup-db/
wp-content/backups/
wp-content/blogs.dir/
wp-content/cache/
wp-content/upgrade/
wp-content/uploads/
wp-content/wp-cache-config.php
wp-content/plugins/hello.php

/.htaccess
/license.txt
/readme.html
/sitemap.xml
/sitemap.xml.gz

Источник https://github.com/github/gitignore/blob/master/WordPress.gitignore

Хороший стартовый конфиг — https://salferrarello.com/wordpress-gitignore/. Там в игноре всё, за исключением того, что вы сами укажете.

VersionPress

Страница проекта: https://versionpress.net/

Особенности:

  • Ключевая особенность, которой наверное больше нет ни в одном плагине: возможность отслеживать и откатывать изменения в базе данных;

  • можно работать как с обычным Git репозиторием;

  • позволяет делать клоны и легко мержить (да, с изменениями в базе);

  • возможность выборочного отката коммита (Undo), не затрагивая остальные;

  • команды wp-cli для работы в консоли

Несмотря на заманчивый функционал, плагин находится в Developer Preview, в продакшн ставить не рекомендуется.

Я установил и настроил четвертую бета версию VersionPress. На данном этапе, интеграция со сторонними плагинами WordPress на слабом уровне.

Как только разработчики найдут способ решить совместимость с большинством плагинов, это будет один из самых серьезных проектов для WordPress.
Разработчики также обещают улучшить интерфейс, будем ждать и периодически смотреть.

к содержанию ↑

Revisr

Официальная страница: https://revisr.io/

Особенности:

  • Возможность создавать коммиты в консоли WordPress
  • Работает с Github и Bitbucket, необходимо подключение в настройках

Установка и настройка Revisr

Качаем Revisr из репозитория WordPress, устанавливаем и активируем как любой другой плагин.

Плагин предложит вам создать новое хранилище, где вы можете указать какие файлы и папки хотите отслеживать:

Revisr-Initialize.png

Смотрите выше файл .gitignore и структуру репозитория.

После этого, вы можете перейти в панель управления Revisr и увидите там предложение сделать ваш первый коммит.

Но сначала, я предлагаю внести некоторые настройки в плагин, чтобы вы могли в дальнейшем удобно с ним работать. Мы будем производить настройки на вкладке Remote.

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

Nstrojka-Revisr-Remote.png

Remote URL — сюда вписываем адрес вашего удаленного репозитория git. В данной статье сервис Bitbucket, потому что в нем можно бесплатно создавать приватные хранилища, в отличие от Github, где бесплатно можно разместить только публичные проекты.

Ссылка имеет следующий вид:

[email protected]:<ваш_аккаунт>/<имя_проекта>.git — если для подключения используется ssh (рекомендуется)

https://ваш_аккаунт@bitbucket.org/ваш_аккаунт/ваш_проект.git — если планируете использовать протокол https (в этом случае, прочитайте замечания по использованию плагина на странице Installation о том, как защитить некоторые файлы)

Automatically push new commits? — автоматически отправлять новые коммиты в централизованный репозиторий. Для удобства можно отметить этот пункт.

Automatically pull new commits? — автоматически скачивать новые коммиты из центрального хранилища.

При включении опции, рядом появится ссылка, которую нужно добавить как Webhook в настройки Bitbucket или Github, чтобы Revisr мог автоматически обновлять удаленный репозиторий.

к содержанию ↑

Создаем репозиторий в Bitbucket

Регистрируемся на облачном сервисе Bitbucket, и создаем новый репозиторий.

Генерируем SSH ключи на хостинге и на локальной машине, так как мы хотим получить доступ к централизованному хранилищу из обоих мест.

ssh-keygen -t rsa -b 4096 -C "ваш_емайл"

Копируем полученные публичные ключи (~/.ssh/id_rsa.pub) любым удобным способом в настройки личного профиля Bitbucket.

Теперь у нас есть доступ к проекту по ссылке.

[email protected]:<ваш_аккаунт>/<имя_проекта>.git — её же мы указали в поле Remote URL в настройках плагина Revisr.

Наконец, добавим в Bitbucket Webhook, чтобы работала автоматическая отправка и получение новых коммитов.

Nastrojka-Bitbucket-Webhook-dlya-Revisr.png

к содержанию ↑

Клонируем проект из репозитория Bitbucket на локальную машину

Проект можно скачать одной командой.

git clone [email protected]:<ваш_аккаунт>/<ваш_проект>.git

Вы можете создавать новые ветки, тестировать и добавлять новый код, затем, после того как вы зальете новые коммиты на облако, они автоматически загрузятся на сайт, где вы можете их применить в панели управления Revisr.

Dashboard-plagina-Revisr.png

Push Changes — отправить коммиты в централизованное хранилище.

Pull Changes — скачать и применить коммиты из центрального хранилища.

к содержанию ↑

Рекомендуемые источники для более детального изучения Git

  • официальная документация на сайте git-scm.com (на русском)
  • https://githowto.com/ru — Курс обучения Git на русском
  • версия книги в печатном варианте (Pro Git)