Git рабочий / промежуточный сервер рабочий процесс - PullRequest
107 голосов
/ 02 октября 2010

В настоящее время мой сайт (рабочий сервер) уже содержит много кода. И теперь я хочу начать использовать Git для своих проектов и настроить промежуточный сервер для моей команды. Кто-нибудь может дать мне какой-нибудь совет?

Вот картинка в моих мыслях:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

Мой вопрос: как мне начать?

Вот несколько шагов в моей голове:

  1. сделать git init на рабочем сервере (это безопасно?)
  2. clone репо с производства на промежуточный сервер
  3. разработчики clone репозиторий из постановки на свой локальный компьютер
  4. push файлов на промежуточный сервер после завершения изменения
  5. когда готово, push все для производства

Имеет ли смысл этот рабочий процесс, или есть какой-то лучший способ сделать это?

Что если я хочу изменить только один файл?

Есть ли в этом процессе origin / master? Кто является источником? я собираюсь в конечном итоге иметь несколько источников ??

Кроме того, когда разработчик должен использовать branch в этом случае?

Ответы [ 2 ]

58 голосов
/ 02 октября 2010

Лучше всего использовать мастер-ветку только для производства и ветки разработки для Staging.Каждый разработчик должен создать локальную ветку, чтобы добавить новые функции, а затем объединить с веткой разработки.Если вы новичок в git, попробуйте использовать - http://github.com/nvie/gitflow Существует также хорошая картина, описывающая модель ветвления git - http://nvie.com/posts/a-successful-git-branching-model/

18 голосов
/ 02 октября 2010

Ваше предложение выглядит нормально, но я бы не позволил разработчикам сразу перейти на промежуточный сервер.Вместо этого интегратор должен тщательно просмотреть ветки и включить их в основную ветку (или ветку разработки, если вы используете модель потока git, как предложено bUg.) * Тот же самый человек отправит на промежуточный сервер.

* Интегратор : " Довольно центральный человек, выступающий в качестве интегратора в групповом проекте, получает изменения, сделанные другими, просматривает и интегрирует их и публикует результаты для использования другими.."


1.сделать git init на рабочем сервере (это безопасно?)

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

2.клонировать репо с рабочего на промежуточный сервер

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

3.разработчики клонируют репо со сцены на свою локальную машину

4.отправьте файлы на промежуточный сервер после завершения изменения

5.когда подготовка готова, подтолкнуть все к производству

Заменить «подготовка» на «центральная», и я думаю, что вы в порядке, но большая проблема заключается в том, как вы будете работать с ветвями и объединением,как указывает Буг.

...