2016-11-23 2 views
2

После миграции tfs (совершенно другая концепция ветвей) мне нужно объединить исправления с несколькими ветвями выпуска, но ветви не идентичны, они в основном похожи, но разные продукты (например, различный брендинг, строки привязки и т. д.), поэтому я не могу использовать nvie gitflow одну стратегию ветвления продукта здесь.Как слить ветвь git на несколько ветвей релиза

enter image description here

https://github.com/MrKekson/stackoverflow_question/network

здесь вы можете найти значительно упрощенную структуру филиала, и в основном я хочу, чтобы объединить Hotfix1 ветвь от b1, до tesztb3, но без предыдущих фиксаций на b1 (c3, c4).

Cherrypicking или rebase могут помочь, но мне не удалось это сделать, и у меня не было большого опыта использования расширенного git. Поэтому, пожалуйста, сообщите мне, как это сделать, или что я должен изменить, чтобы это сделать.

+1

Вы также должны указать, что именно вы пробовали уже. Cherrypicking - это, скорее всего, то, что вы хотите, но вы должны указать, какие команды черепахи и переустановки вы пытались и почему они не дали ожидаемого результата. – Vampire

ответ

0

Хорошо, я решил. Есть, по крайней мере, несколько способов сделать это:

Так что, в принципе, можно забрать каждую фиксацию отдельно на hotfix1 до teszt3, но это неуклюже.

Таким образом, мы можем либо создать ветвь слияния из b1, либо объединить в нее hotfix1, а затем выбрать cherry-commit, созданный слиянием, в tesztb3, что даст новую фиксацию на testb3. Можно даже добавить -x к вишневому кирку, поэтому itt создаст заметку о новом коммите, с его родителями, иначе мы сможем раскрыть нашу ветку hotfix1 в 1 commit, а затем вишневый выбор.

Или мы можем создать Rebase ветвь на основе последней фиксации (ВЧ2), затем

git rebase --onto <new-parent> <old-parent> <lastcommit> 

--onto explained here, но <new-parent> наша цель филиал teszt3, я предпочитаю создавать объединения ветку для этого на цель ветвь, старый родитель является началом hotfix1, а lastcommit в этом случае является hf2 в hotfix1. Затем слейте teszt3 в нашу новую ветвь слияния и создайте запрос на возврат обратно в teszt3.

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

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