2013-09-25 3 views
2

В моем git repo есть 2 основных ветки: master и develop. develop идет вперед. Мне нужно внести некоторые изменения и логически хорошо отделить от develop. Но не все изменения develop должны быть объединены в master после того, как я закончил. Как мне сделать что-то подобное?Вторая развитая ветвь в git

     today 
         | 
master ------------------------------------------ 
     |        ↑ 
     |        | 
develop -------------------------  | 
       |  | |    | 
       |  ↓ ↓    | 
     develop2 -------------------------- 
+1

Cherrypick ..... –

+0

Я буду использовать черрипик, если не найду ничего лучше. Все еще надеюсь на что-то более элегантное. –

+0

Звучит как ветка исправления, которая принимает некоторые изменения от разработки – slebetman

ответ

0

Ты считаешь feature branches?

Каждая ветвь характеристики адресует только конкретную проблему и может быть объединена обратно до master после ее завершения. Филиал develop содержит все ветви функций, даже «неполные», плюс потенциальные дополнительные изменения, для которых вы не хотите создавать ветвь функции. Вы можете всегда забирать забор из develop в новый филиал от master, чтобы создать новую ветвь функции.

Время от времени вы можете захотеть воссоздать ветку develop с нуля. Кроме того, всегда можно «обновить» ветвь функции до текущего master путем слияния (не сбрасывая!) С master.

+0

Я использую ветви функций. Но в этом случае изменения от разработки, которые мне нужны в разработке 2, уже выполнены без них. Это то, что я получил и не могу изменить. –

+0

@VarvaraStepanova: Почему бы вам не сделать вишню - выберите эти изменения в 'develop' в новую ветку функций и объедините ее в' develop2'? – krlmlr

1

Прежде всего, вам необходимо запланировать выпуск Например, например, в git-flow или github-flow.

Если вы действительно нуждаетесь в части разработки в вашей основной ветке вы должны сделать что-то вроде этого

git branch dev2 HASH_IN_DEV 
git checkout master 
git merge dev2 

или в случае, если вы используете ГИТ-потока следует учитывать изменения как исправление:

git checkout -b hotfix master 
git cherry-pick HASHES 
git checkout master 
git merge --no-ff hotfix 
git checkout develop 
git merge --no-ff hotfix 
+0

Похоже, что выбор вишни - единственный способ. Грустно, я надеялся избежать этого. –

+0

Вишневый сбор неплох, если вы помните, чтобы объединить историю, чтобы предоставить метаинформацию об этом – gurugray

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