git перебазировать в другую ветку после уже слияния - PullRequest
0 голосов
/ 20 марта 2020

Я использую адаптер git для Visual Studio. Этот вопрос касается перебазирования в другую ветку после того, как она уже была объединена с веткой.

У нас есть функциональная ветвь (я единственный разработчик, который ее использует). Некоторое время go он был объединен с нашей веткой Develop вместе с кучей других ветвей функций до и после нее. Клиент решил отложить выпуск большей части работы над нашей веткой Develop и выпустить то, что находится в ветке Feature, самостоятельно.

Что я хочу сделать, это переназначить ветку Feature в нашу предыдущую ветку релиза. и создайте новую ветку релиза оттуда. Будет ли это работать? Ветвь функции имеет более новый код, чем ветка предыдущего выпуска. Но я предполагаю, что rebase не заботится, она только отменит изменения, которые я внес в старую ветку релиза? Я предполагаю, что ветвь Develop не будет затронута? (Что было бы хорошо, поскольку нам нужно было бы объединить новую ветку релиза для разработки, прежде чем она будет помещена в релиз.)

  • Релиз 10
  • Новая работа, выполненная после выпуска 10 и объединенная с веткой Develop
  • Функция 88, созданная из Develop
  • Функция 88, объединенная с Develop
  • Дополнительные функции, объединенные с Develop
  • * То, что я хочу сделать, это переустановить функцию 88 в выпуск 10. А затем создать из нее выпуск 11. Предполагается, что ветвь разработки не затронута, и ребаз будет в порядке, если применить зафиксированную работу только к ветке выпуска 10?

В конечном итоге работа версии 11 будет объединена с веткой разработки и будет использоваться для выпуска 12.

1 Ответ

0 голосов
/ 20 марта 2020

Это одна из причин использования ветвей функций.

Предположим, ваша ветвь функций состоит из 5 коммитов. Вы можете переместить его в любое место, например так:

git rebase --onto new-base feature-branch~5 feature-branch

Это означает, что ваша ветвь функций не имеет слияний и является прямой линией.

Теперь ваш рабочий процесс немного более понятен, например:

git checkout -b release11 release 10
git rebase --onto release11 feature-branch~5 feature-branch

Это переместит ветвь объекта из текущей позиции .... вы можете рассмотреть возможность проверки и отсоединения.

git checkout --detach feature-branch
git rebase --onto release11 HEAD~5 HEAD

Это должно сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...