2017-02-09 5 views
1

У меня есть проект, который я использую git для управления его версиями. Теперь я буду работать над версией 2.0, которая будет загружена на сервер после того, как мы закончим. Итак, я решил создать новую ветку для разработки версии 2.0.Как создать версии проекта

Мой вопрос: поскольку главная ветка всегда исправлена ​​ошибками, мне нужно загрузить эти изменения на сервер, не загружая изменения, связанные с версией 2.0.

Как вы это сделаете? Лучшим решением, которое я смог найти, является использование git archive, чтобы извлечь основную ветвь без изменений, внесенных в ветку версии 2.0. Это действительно лучшее решение?

ответ

1

Подумайте о своем master отделении от кода для производства. Там вы исправляете ошибки. И подумайте о своей ветке master_2_0 как о ветке, которая когда-нибудь появится на производстве. Там вы разрабатываете новые интересные функции.

Теперь, когда вы сделали некоторую разработку в master_2_0 и исправили некоторую критическую проблему в master, вы должны сделать слияние. Убедитесь, что до слияния, что у вас есть ваши местные отделения master и master_2_0 в актуальном состоянии

git checkout master_2_0 #switch to master_2_0 branch 
git merge master # merge branch `master` into master_2_0 

Это как исправления из master пойдут master_2_0. Иногда слияние конфликтов может возникать, если вы меняете одни и те же части кода. Вы должны тщательно их решить.

Таким образом, слияние будет покидать ваш филиал master, так как он будет держать master_2_0 филиал обновлен с исправлениями от master.

Вы должны развернуть на производство только ветвь master. Это зависит от того, как вы развертываете. Обычно это делается с использованием git clone с указанием ветки, которую вы хотите проверить (master по умолчанию).

git archive также будет работать для вас, он также позволяет указать ветку, которую вы хотите архивировать.

1

AFAIU филиал master - единственная ветка, которая должна быть живой. Итак, каждый раз, когда новое исправление добавляется в ветвь master, вам необходимо переустановить его в новую ветку. Таким образом, новая ветка содержит уже исправления.

И, наконец, вы можете загрузить изменения master с помощью git archive, чтобы избежать отправки .git.

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