2010-10-02 2 views
107

В настоящее время на моем сайте (производственном сервере) уже есть много кода. И теперь я хочу начать использовать Git для своих проектов и настроить промежуточный сервер для своей команды. Может ли кто-нибудь дать мне совет?Рабочий процесс создания/промежуточного сервера 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. при олене ing готово, push все к производству

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

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

Имеет ли происхождение/мастер какое-либо отношение к этому процессу? Кто является источником? я собираюсь в конечном итоге иметь несколько истоков?

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

+115

+1 для стрелок;) – takeshin

+1

Как есть 105 человек + 1отметил комментарий * около + 1'ing *, но только 98 человек + 1 'задал вопрос? – drs

+1

@ drs Я думаю, вам нужно задать для этого отдельный вопрос;) – CP3O

ответ

57

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

+0

Это лучший ответ. Я не был очень знаком с концепцией ветвления Гит. – kayue

18

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

* Integrator: "A fairly central person acting as the integrator in a group project receives changes made by others, reviews and integrates them and publishes the result for others to use..."


1. сделать GIT инициализации в производственном сервере (это безопасно?)

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

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

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

3. Разработчики клонировать репозиторий с постановкой на локальном компьютере

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

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

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

+0

Спасибо за ответ. – kayue

+9

1: Чтобы сделать Git repo безопасным в производстве, обязательно добавьте файл .htaccess с «Запретить все» внутри. – kayue

+2

2: «Центральное» репо Феликсиса имеет в виду голый репо. Используйте команду -bare для создания открытого репо. – kayue

Смежные вопросы