2016-07-29 7 views
1

У нас есть ветка развития, из которой появляются ветви признаков. Некоторые функции достаточно велики, они становятся ветвями тем. Эти ветви тем тогда имеют больше подвеций, которые объединены в ветку темы и после того, как вся тема будет закончена, тогда она будет объединена с развитием.Как перестроить ветку функций из ветви темы в ветку развития?

Теперь я начал ветку функций из ветви темы, но мне следовало начать с разработки. Как я могу переустановить это?

development 
A--B--C--D--E--F--G 
     \ 
topic T1----------T2--T3--T4--T5 
     \  /  \ 
      U1--U2--U3   W1--W2--W3 
     sub-feature U   feature W` 

Функция W должна была начаться с ветки развития.

Есть ли способ переустановить W1, W2 и W3 на ветку разработки, не касаясь ветви темы T?

Я знаю, что я мог бы проверить ветвь развития и вишню выбрать каждую фиксацию, но это создаст новую фиксацию с новыми метаданными. Я хочу сохранить дату создания и, возможно, автора!

ответ

3

Вы можете сделать rebase --onto:

git rebase --committer-date-is-author-date --onto dev T4 W` 

Это повторит любое обязательство послеT4, вплоть до W HEAD, на dev ветви.

     W1'--W2'--W3' (W) 
        /
A--B--C--D--E--F--G (dev) 
     \ 
topic T1----------T2--T3--T4--T5 
     \  /  
      U1--U2--U3   
     sub-feature U   

См «git rebase without changing commit timestamps», как обходной путь, чтобы сохранить разумный срок фиксации.
Но любая перестановка всегда будет изменять метаданные.

+0

Работали как очарование. Устранены конфликты и продолжают работать. Благодарю. – arenaq