Вы могли бы сделать что-то вроде этого. В этом рабочем процессе я предполагаю, что центральный сервер (origin>), ваш компьютер (local>) и некоторые devolopers (deva>, devb>).
Сначала давайте создадим несколько локальных веток отслеживания для ваших веток разработчика, промежуточных и активных веток и отправим их в центральное хранилище. Это нужно только один раз, поэтому не нужно много накладных расходов.
local>git checkout -b dev
local>git push -u origin dev
local>git checkout -b staging
local>git push -u origin staging
local>git checkout -b live
local>git push -u origin live
Ok.
Теперь у вас есть три ветви, которые настроены как локальные ветви отслеживания для соответствующих удаленных ветвей в источнике. Теперь любой разработчик может сделать то же самое, но ему нужно меньше усилий для этого. Сначала им нужно получить обновленные ссылки, чтобы мы могли ссылаться на удаленную ветку, а после этого создать ветви отслеживания с помощью команды git checkout. Это должны сделать все разработчики, которые собираются внести свой вклад в центральное хранилище (и только один раз, даже в этом случае).
devx>git fetch
devx>git checkout --track origin/dev
devx>git checkout --track origin/staging
devx>git checkout --track origin/live
Итак, допустим, что Дева выполнила некоторую работу, на которую вы хотите взглянуть. Мы предполагаем, что он / она работает над новой функцией в ветке dev.
deva>git checkout dev
deva> ... edit some files
deva>git commit -am "new feature bla bla"
deva>git push
Вы получаете письмо от Девы, что он отправил свои изменения. Тогда вы делаете:
local>git checkout dev
local>git pull
Хорошо. Итак, теперь вы и другие разработчики настроили и запустили систему, чтобы вы могли сотрудничать на любом этапе разработки. Но как нам получить и запустить изменения в серверной среде?
Мы можем решить эту проблему, используя систему хуков в git. Вы можете позволить центральному репозиторию уведомлять каждую серверную среду о том, что к ней что-то было добавлено (вы можете легко определить, какая именно ветвь была перемещена) и принять соответствующие меры. Таким образом, серверы могут обновлять себя, не заботясь об этом. Ну, конечно, вы должны быть осторожны с тем, что вы толкаете, и не толкайте Но это требование будет всегда, независимо от того, какая у вас система.
Надеюсь, это помогло вам осуществить свою мечту: D