Виробництво / постановка Git робочого процесу сервера


108

В даний час на моєму веб-сайті (виробничому сервері) вже є багато коду в ньому. А тепер я хочу почати використовувати 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все до виробництва

Чи має цей робочий потік сенс, чи є якийсь кращий спосіб зробити це?

Що робити, якщо я хочу змінити лише один файл?

Чи має походження / господар щось спільне з цим у цьому процесі ?? Хто походження? я збираюся в кінцевому підсумку мати багато походження ??

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

Відповіді:


59

Краще використовувати головну галузь лише для галузі виробництва та розробки для постановки. Кожен розробник повинен створити локальну гілку, щоб додати нові функції, а потім об'єднатись із гілкою розвитку. Якщо ви не новачок у git, спробуйте використовувати - http://github.com/nvie/gitflow Також є хороша картинка, що описує модель розгалуження git - http://nvie.com/posts/a-successful-git- модель розгалуження /


Це краща відповідь. Я не був дуже знайомий з концепцією розгалуження Гіта.
kayue

@bUg. Чи є у вас посилання на якийсь ресурс, що пояснює розробку гілки -> перехід до системи постановки і головна гілка -> перехід на виробничий сервер більш детально? Чудова стаття Успішна модель розгалуження Git не згадує про цю частину, навіть якщо в ній згадуються дуже хороші поняття розгалуження та версії.
Едгар Аллоро

19

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

* Інтегратор : " Досить центральна особа, яка виступає інтегратором у груповому проекті, отримує зміни, внесені іншими, переглядає та інтегрує їх та публікує результат для використання іншими ... "


1. зробити git init на виробничому сервері (це безпечно?)

Так, це безпечно, але ви, звичайно, повинні встановлювати дуже обмежувальні права на це репо. Я, мабуть, почав би curlперенесення всього веб-сайту на локальний диск, якщо у мене його ще немає.

2. Клоніруйте репо з виробництва на стадіонний сервер

Напевно, у вас повинно бути "центральне" репо, окремо від виробничого та сервера встановлення. Цього можна клонувати і підштовхувати за потребою.

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

4. Після завершення зміни натисніть файли на сервісний етап, після закінчення зміни

5. коли постановка готова, підштовхуйте все до виробництва

Замініть "інсценізацію" на "центральну", і я думаю, що ви все в порядку, але більша проблема полягає в тому, як ви будете працювати з гілками та об'єднанням, як вказує помилка.


10
1: Щоб зробити Git repo безпечним у виробництві, обов’язково додайте файл .htaccess із написом "Заборонити все".
kayue

2
2: "Центральне" репо "Феліксиза" має на увазі голе репо. Використовуйте команду --bare для створення голого репо.
kayue

1
@keyue 1: Ще краще додайте RedirectMatch 404 /\.gitу виробництво .htaccess, щоб захистити свою папку .gitignore , .gitattributes та .git .
Лев
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.