Git: localhost> удаленная разработка> удаленное производство - PullRequest
4 голосов
/ 09 декабря 2010

Я новичок в Git и не понимаю, как мне добиться следующего. Есть 2 сервера:

  1. Localhost
  2. Linode.com VPS

В основном, я хочу:

  1. Напишите новый код на моем локальном хосте.
  2. Нажмите новый код в разработке версия на VPS, где это может быть проверено (на dev.domain.com или что-то вроде что.)
  3. Если новый код работает, нажмите его к производственной версии на тот же VPS. Должен быть доступен по адресу domain.com.

Как правильно достичь того, чего я хочу?

Ответы [ 3 ]

5 голосов
/ 09 декабря 2010

Есть несколько способов сделать это. Если у вас есть возможность запустить ssh-сервер на вашем VPS, это довольно просто.

В вашем git-репозитории на localhost вы установите два git-пульта. У них будет один и тот же хост, но разные пути (один удаленный для пути dev и один для пути prod).

git remote add prod ssh://[user@]host.xz[:port]/path/to/prod/repo.git/
git remote add dev ssh://[user@]host.xz[:port]/path/to/dev/repo.git/

И если вы настроите ssh доступ с открытым / закрытым ключом, вам не нужно будет каждый раз вводить пароль.

Как только вы внесете необходимые изменения в репозиторий на localhost, вы сделаете это, чтобы отправить их в среду разработки:

git push dev    # remote named dev points to dev repository

После того, как они проверены, вы можете отправить их в производство (из репозитория на localhost):

git push prod   # remote named prod points to prod repository

Если вы собираетесь изменить репозиторий git на localhost между нажатиями на dev и prod (кроме исправлений, которые вы хотите применить), то есть много способов решить эту проблему:

  • ветвь или тег перед нажатием кнопки dev и push вместо основной ветки (рекомендуется в любом случае по другим причинам).
  • сделайте копию репо на localhost и нажмите на нее.
  • ветвь перед внесением изменений и добавьте ветвь вместо основной.
  • войдите в систему VPS и просто нажмите (или потяните) от разработчика к репозиторию продуктов

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

0 голосов
/ 22 июня 2012

PhpStorm может автоматически синхронизировать изменения по sftp, даже если вы меняете ветки локально.

В системах Windows это лучшее решение, которое я нашел до сих пор. В системах Unix / Mac вы можете использовать rsync в сочетании с утилитой, которая отслеживает изменения файловой системы.

0 голосов
/ 09 декабря 2010

Предложение: (что не совсем то, что вы хотите)

1) Используйте "нормальный способ работы git" .. имейте локальный и удаленный репозиторий.

2) Потяните код локального хранилища на VPS для тестирования

3) Потяните код удаленного хранилища на VPS для производства

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...