Существует несколько способов сделать это. Если у вас есть возможность запускать ssh-сервер на VPS, это довольно просто.
В вашем репозитории git на localhost вы настроите два git-пульта. Они будут иметь один и тот же хост, но разные пути (один пульт для пути dev и один для prod-пути).
git remote add prod ssh://[[email protected]]host.xz[:port]/path/to/prod/repo.git/
git remote add dev ssh://[[email protected]]host.xz[:port]/path/to/dev/repo.git/
И если вы устанавливаете доступ к открытым/закрытым ключам ssh, вам не нужно вводить пароль каждый раз.
После того, как вы совершили необходимые изменения в свой репозиторий на локальном хосте, то вы будете делать это, чтобы подтолкнуть их к Dev среде:
git push dev # remote named dev points to dev repository
После того как они будут проверены, то вы можете подтолкнуть их к производству (от ваш репо на локальном хосте):
git push prod # remote named prod points to prod repository
Если вы собираетесь изменить GIT репозиторий на локальном хосте между нажатием Девы и продом (кроме исправления вы хотите приложенным), то существует много способов решения этих проблем:
- ветка или тег перед тем, как нажимать на dev и нажимать это вместо вашей основной ветви (рекомендуется в любом случае по другим причинам).
- Сделайте копию репо на локальном хосте и нажмите это.
- ветка перед внесением изменений и нажмите ветку вместо основной ветви.
- Войти в VPS и просто нажать (или тянуть) от разработчика к прод репо
Это не покрывает половину ваших вариантов, но достаточно, может быть, чтобы думать.
Как насчет * вытягивания * кода на производственный сервер из репо? – cdhowie 2010-12-09 14:24:16