2013-06-12 2 views
0

Итак, у меня есть следующая ситуация, когда мы разветвляемся для нашего выпуска, и продолжающиеся улучшения добавляются к мастеру.Изменения перестановки Git на мастера от предка

A---B---C---Q---W---E---R---T master 
    \  /
     D---E---F Release 1 
       \ 
       G---H---I Release Fixes 

Изменения до F из 'Release 1' сливаются обратно в 'мастера'. Есть ли способ переустановить/переименовать 'Release Fixes' на «master»?


Редактировать

Чтобы предоставить больше информации, я сделал вишневый выбор из серии фиксаций и некоторые досматриваемых файлов, кажется, не быть в правильном варианте. Если предлагается слияние, возможно ли слияние между двумя коммитами?

+1

ли слияние, чтобы справиться с ошибкой? вам, возможно, придется решать некоторые конфликты, но это должно сработать. – Rufinus

+0

Во втором предыдущем комментарии, почему бы вам не просто _merge_? – kirelagin

+0

Причина, по которой я спрашиваю, это то, что я сделал вишневый выбор большого количества коммитов, а некоторые файлы не обновлены до последней фиксации. могу ли я сделать git merge .. 'так, чтобы изменения, которые были объединены, были сведены к подмножеству ветки? – rynmrtn

ответ

0

Да, команда rebase будет:

git rebase --onto master F I  #<realse1>..<release-fixes> 

Не то, что это удалит совершает G, H и I от F и создать G 'H', и я на T. Если вы хотите чтобы оставить G, H и I в месте, то вы могли бы сделать:

git checkout master 
git cherry-pick G H I # <release1>..<release-fixes> 

[редактировать] или, как + kirelagin указывает, просто сделать слияние, чтобы оставить их на месте.

+2

Если вы хотите оставить их на месте, вы обычно делаете _merge_. – kirelagin

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