Синхронизация файлов сайта между локальным и живым серверами с помощью GIT? - PullRequest
2 голосов
/ 04 марта 2011

Скажем, у меня есть два веб-сервера, один локальный и один живой.

В SVN я бы извлекал файлы веб-сайта в каталог public_html моего локального веб-сервера, а также в каталог public_html действующего веб-сервера.Затем я работаю с файлами непосредственно на локальном сервере и фиксирую любые изменения в центральном хранилище.

Когда я буду готов к тому, что эти изменения появятся на живом сервере, я подключусь по SSH и выполню обновление SVN.

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

Как можно выполнить аналогичный рабочий процесс с помощью GIT?

Ответы [ 4 ]

3 голосов
/ 04 марта 2011

Чтобы смоделировать ваш текущий рабочий процесс, почти точно:

  • Настройка git-репо.
  • Клонировать репо на сервере и локально.
  • Работа на месте
  • git push to git repo
  • ssh на сервер
  • git pull.

Еще один способ сделать это - создать «производственную» ветку в git, создать задание cron, которое постоянно вытягивает эту ветку на сервер, а затем просто объединять и передавать в «производственную» ветку в любое время опубликовать ваши изменения. Похоже, вам нужна более конкретная стратегия ветвления.

См .: Модель ветвления Git Flow && Инструмент Git Flow Cli

Удачи! Это очень разрешимая проблема с git.

1 голос
/ 04 марта 2011

Вы можете найти это полезным: http://joemaller.com/990/a-web-focused-git-workflow/

0 голосов
/ 04 марта 2011

Наличие настройки, которая запускает автоматическое вытягивание, как предлагали leonbloy и codemac, на первый взгляд может показаться хорошей идеей, но она, как правило, очень хрупкая. Я предлагаю другую альтернативу.

http://toroid.org/ams/git-website-howto

0 голосов
/ 04 марта 2011

В вашей локальной рабочей копии:

git push ssh://you@yourserver/path/to/your/wc

отправит подтвержденные изменения в вашей локальной версии на ваш сервер.

...