Рабочий процесс Git с WordPress - Localhost to Live

20

У меня есть простой, но общий вопрос рабочего процесса WordPress.

Текущий рабочий процесс

  • Я разрабатываю все локально
  • Файлы FTP (и дампы базы данных) до сервера для отображения клиента
  • Запросить изменения локально
  • Файлы FTP (и дамп базы данных) снова запустите сервер
  • Другие локальные изменения
  • FTP (и дамп базы данных) снова
  • Промыть и повторить

Это стало чудовищной болью. Должен быть лучший способ

Предполагаемый Git рабочий процесс

  • Локальная копия будет моей "master
  • 'Push файлы до где-то
  • 'Вытащите файлы из этого места посередине на мой сервер live/testing

Я думаю, у меня есть идея, как это должно быть концептуально сделано, но я не знаю, как это должно быть сделано. Должен ли я использовать частное репо Github в середине? Есть ли способ для моего Live сайта "Pull" непосредственно из моего локального репо?

Извините, если это кажется элементарным или избитым до смерти, но Ive search и havent нашли базовое руководство "Вот как должен выглядеть ваш рабочий процесс".

С благодарностью!

Терри

  • 0
    +1 вопрос = я делаю то же самое, и это большая боль. Git Workflow кажется отличным решением.
Теги:

2 ответа

8
Лучший ответ

Похоже, вы вообще не используете управление версиями. Это хорошая идея, что вы начнете. Я просто конвертировал из SVN в Git, и я как бы делаю то, что вы делаете на более высоком уровне. Начните с ваших целей:

  • Получить контроль версий
  • Установите какое-то веб-развертывание через Git
  • Удаленное управление версией

Люди скажут вам, что Git не является инструментом развертывания в Интернете - они могут быть правы, но пока это работает нормально для меня, и я сделал что-то подобное. К счастью для вас, я практиковал установку Wordpress - вот шаги, которые я предпринял.

  • Получил все с установкой Git и установил, насколько клиент идет.
  • Загрузили последнюю версию Wordpress в настройке vanilla.
  • git init базовая установка без изменений
  • Разветвленный мастер в "dev" и "live"
  • Работайте локально, фиксируясь в "dev", затем, как только изменения будут выполнены, будут объединены для жизни.

Теперь, что я вернулся и делал, было создание VM сервера gitolite и использование этого в качестве моего хоста - это эффективно заменило github в вашем примере. Я думаю, что вы знаете ценность удаленного репозитория - я бы определенно преследовал этот маршрут.

Я собираюсь вернуться на второй шаг на втором этапе моих рекомендаций. Вы должны оставить ванильную версию Wordpress на мастере, чтобы вы могли обновить ядро ​​и посмотреть, как он играет с вашим пользовательским кодом, вместо того, чтобы обновлять ядро ​​на чем-то вроде одной из ваших ветвей и всего, что ломается. Это было довольно удобно для меня и что-то, что я собираюсь определенно использовать в больших проектах, таких как Magento.

Хорошо, вернемся к развертыванию. Вы можете поместить на свой веб-сервер клиент Git и иметь его pull из своей ветки в рабочем процессе, но вы должны принять некоторые особые соображения планирования. Ваши файлы prod скорее всего будут отличаться от ваших файлов dev в определенных местах, в частности конфигурации (базы данных и т.д.). Вы захотите убедиться, что эти файлы находятся в .gitignore, чтобы вы не подтягивали dev настраивается в среду prod.

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

  • 0
    Спасибо @melee за подробный ответ! Итак, вы предлагаете, чтобы у меня было 3 локальных репо (master, dev, live), одно репо на Github (dev) и одно репо на главном сервере (live репо). Так что все мои слияния и ветвления выполняются локально, затем PUSH мастер на Github, затем PULL мастер на живой сервер? Что основная / самая простая идея? Акцент на простом .
  • 0
    Re: ваше второе предложение - Нет - один репо удаленно с 3 ветками. Но кроме того, это примерно так. Вы работаете над одним репо, это лучшая часть! :)
Показать ещё 6 комментариев
0

Я начинаю настраивать такой рабочий процесс для Wordpress. Я уже работаю над несколькими другими веб-проектами.

Я использую инструмент gitolite (https://github.com/sitaramc/gitolite/wiki/) для управления общими репозиториями (репозиториями без локальной проверки) в центральном месте, а затем запускает крюк обновления в гитолите, когда ветвь выталкивается из места разработки.

Этот хук затем ssh на живой сервер (или учетную запись клиента или что-то еще) с общим закрытым ключом, хранящимся на сервере развертывания, и выполняет git pull из public_html или любого другого места, где вы обслуживаете установку Wordpress.

Это делается с использованием записи только для чтения в конфигурационном файле gitolite, который является conf/gitolite.conf в локальном хранилище конфигурации. (Gitolite использует репозиторий git для управления его конфигурационными файлами)

repo wp-versions
  RW+ = tmzt
  R = server1
  R = server2

Первый - это мой основной открытый ключ, который хранит keydir/tmzt.pub в том же репозитории (тот же формат, что и .ssh/authorized_keys). Остальные два являются живыми веб-серверами, которые будут иметь доступ только для чтения к репозиторию. Добавьте три ключа в keydir и обязательно зафиксируйте и нажмите. Изменения будут сделаны автоматически в установке гитолит. (Ключи сервера разделяются несколькими пользователями и копируются в файл .ssh/id_rsa каждого пользователя, но это может быть www-data, если вы предпочитаете).

RW + означает, что мой основной пользователь имеет чтение, запись и может обновлять ветки без перемотки вперед (полезно для возврата на сервер).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню