2016-02-12 4 views
0

В проекте у меня есть ветка dev, актуальная с master.Примените ветку к прошлому фиксации

Я хотел бы привести изменения отрасли dev к ветке past-master, то есть в основном версия master остановлена ​​при предыдущем фиксации.

Я попытался git rebase dev на past-master но переигровка всех коммитов между past-master и master перед нанесением сука.
git cherry-pick A^..B с A является первым dev фиксацией и B последним на past-master, по какой-то причине не удается найти конфликт.

Отправляясь в dev ветви и работает git format-patch past-master генерировать все коммиты patchs, и применяя те из dev ветви по одному на past-master работ, но чувствую себя очень неоптимальным.

Есть ли хороший способ сделать это?

ответ

0

Чтение man-страницы для переустановки должно очистить все это для вас. В игре три коммитов: HEAD, вверх по течению и на.

Обязательства, которые он применяет, находятся вверх по течению .. ХАЙД. Он применяет их кна филиал. Без --onto, on устанавливается вверх по течению. Но вы хотите:

ГОЛОВА устр

вверх по течению: мастер

на: прошлое-мастер

git rebase --onto past-master master dev 

страница руководства имеет именно этот пример в нем. Единственное различие заключается в том, что все коммиты прошлого мастера достижимы от мастера, тогда как в этом примере у следующих есть некоторые коммиты, которые недоступны. Но это не является препятствием:

Here is how you would transplant a topic branch based on one branch to another, to pretend that you forked the topic branch from the latter branch, using rebase --onto. 

    First let’s assume your topic is based on branch next. For example, a feature developed in topic depends on some functionality which is found in next. 

      o---o---o---o---o master 
       \ 
       o---o---o---o---o next 
            \ 
            o---o---o topic 

    We want to make topic forked from branch master; for example, because the functionality on which topic depends was merged into the more stable master branch. We want our tree to look like this: 

      o---o---o---o---o master 
       |   \ 
       |    o'--o'--o' topic 
       \ 
       o---o---o---o---o next 

    We can get this using the following command: 

     git rebase --onto master next topic 
+0

Спасибо, работал как ожидалось! – Eric

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