2015-01-19 1 views
0

Я только начал работать на веб-сайте, который унаследовал от того, кто использовал SVN для управления своим кодом, и я хочу переключить его на использование Git.Управление серверами постановки и производства с использованием git

Я понял, как преобразовать SVN-> Git, так что это отсортировано, и я смотрю, как лучше всего организовать ветвление для будущего доказательства этого, если мы возьмем на себя больше разработчиков и должны будем работать в параллели.

Однако, часть, о которой мне нужно уточнить, - это способ, которым я должен использовать Git для работы на промежуточных и производственных серверах.

В настоящее время процесс заключается в том, чтобы добавить новый код на промежуточном сервере, используя svn update. Затем мы создаем копию svn для создания новой ветви релиза, а затем svn-переключатель для использования этой ветви.

Когда изменения показывают, что они работают там, мы перейдем к производственному коду и svn-переключателю в новую ветвь выпуска в процессе производства.

Если я хочу использовать git, правильно ли сделать следующее?

1) Сделать локальный код изменяет

$ git add <whatever> 
$ git commit -m 'Something' 
$ git push origin master 

2) SSH к веб-серверу

$ cd <staging dir> 
$ git pull 

3) изменения испытаний на промежуточном участке

4) После того, как изменения работают

$ cd <production dir> 
$ git pull 

?

Или мне нужно сделать git checkout там где-то или что-то еще?

+0

@bodget Выглядит хорошо , вот как я это делаю. Возможно, вы можете создать тег для релизов версий. – Roger

ответ

0

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

Например, если вы хотите перейти на стадию, git push origin staging. Тогда в постановке реж,

git checkout staging 
git pull 

и когда вы будете удовлетворены

git checkout production 
git merge staging 
git push 

(Если вы параноик, убедитесь, что он все еще работает), а затем

cd <production> 
git checkout production #just to be sure 
git pull 
+0

Спасибо за ответ - однако, я не уверен, что это дает мне точно. В общем, процесс должен состоять в том, чтобы проверить все изменения на другом сервере (называемые, скажем, тестом), прежде чем вносить эти изменения в промежуточный сервер. Затем, пока сайт промежуточного сервера выглядит хорошо, я (сразу) поеду и задержусь на производственном сервере. Итак, что вы имеете в виду, когда говорите «полагаясь на то, когда вы вытащили главную ветвь в какой каталог»? – bodger

+0

Я имел в виду, что вы на самом деле не задействуете git на этапе создания -> производства, вы можете по существу копировать или rsync из промежуточного каталога в производственный.Я не говорю, что это неправильно, я просто думаю, что постановка постановки и производства в их собственных филиалах добавляет систему безопасности, особенно если вы работаете параллельно или распределяетесь. Но если вы единственный, кто делает развертывание, это может быть просто накладным. – drRobertz

+0

... так что git-wise, ваш предложенный рабочий процесс в порядке, но Rogier уже прокомментировал это. Но это не соответствует вашему рабочему процессу SVN с новыми ветвями выпуска, не так ли? – drRobertz