2013-05-01 7 views
0

У меня есть две ветки мастер & разработать. Идея заключается в том, что я работаю над развитием ветки и слиянием изменений только в том случае, когда номера версий перегружаются с IE на v1.1 из v1.0. И я применяю исправления к основной ветке только для ошибок.Git Теги & Филиалы

Каждый раз, когда версия нажимается, я объединюся в master и tag master с увеличением точечного выпуска.

Я знаю, что могу вернуться к тегу, используя

git reset --hard v1.0 

который прекрасно работает. Однако в сценарии, когда мне нужно применить исправление к основной ветке, вы думаете, что лучше всего переместить голову на эту фиксацию, а затем отделить ее от нее, а затем слить обратно в повторную пометку до версии 1.1 и повторное нажатие.

Значение кода может быть развернуто снова при v1.01, после чего тег v1.0 по-прежнему неповрежден?

+0

Вы читаете http://nvie.com/posts/a-successful-git-branching-model/? Кстати, использование 'reset' - плохая идея. – kan

+0

Пожалуйста, перефразируйте свое длинное предложение «Однако ...». Трудно понять. – michas

+0

Трудно понять, каков ваш вопрос именно о –

ответ

2

Настройка с двумя ветками звучит отлично.

Следует помнить, что git reset --hard сбрасывает текущую ветку на данную фиксацию, отбрасывая все новые коммиты. - Скорее всего, это не то, что вы хотите.

Для исправлений на главной ветке. Вы должны обязательно оставить свои теги такими, какие они есть, и ввести новую небольшую версию для фиксированного кода.

git checkout master 
#fix code 
git commit -am 'fixed bug' 
git tag $new_minor_version 
git checkout develop 
git merge master # optional, to apply the fix in develop, too 

Если мастер был v1.0 и новый младший версия v1.0.1 то первая метка включает ошибку в то время как последний не содержит его больше.

Пока вы не планируете активно поддерживать несколько версий (например, ветвь 1. * и ветвь 2. *), вам больше не нужны ветки, и все в порядке. :)

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