Более интересные перемещения

Также возможно сделать так, чтобы при перемещении воспроизведение коммитов начиналось не от той ветки, на которую делается перемещение. Возьмём, например, историю разработки с тематической веткой, ответвлённой от другой тематической ветки. Вы создаете тематическую ветку server, чтобы добавить в проект некоторые функциональности для серверной части, и делаете коммит. Затем вы выполнили ответвление, чтобы сделать изменения для клиентской части, и несколько раз выполнили коммиты. Наконец, вы вернулись на ветку server и сделали ещё несколько коммитов.

Предположим, вы решили, что хотите внести свои изменения для клиентской части в основную линию разработки для релиза, но при этом хотите оставить в стороне изменения для серверной части до полного тестирования. Вы можете взять изменения из ветки client, которых нет в server (723df94 и 4556383), и применить их на ветке master.

Для этого переключитесь на ветку client, а затем выполните интерактивное перебазирование:

  • Групповая разработка > > Переключить На > client,
  • затем в панели История выполните на ветке master контекстную команду Interactive Rebase.

В результате 1C:EDT откроет панель Interactive Rebase, в которой будут перечислены все коммиты ветки client.

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

После этого нажмите Старт в командной панели и 1C:EDT выполнит перебазирование оставшихся двух коммитов в ветку master. Несмотря на некоторую сложность этого способа, результат впечатляет.

Теперь вы можете выполнить перемотку вперёд для ветки master:

  • Групповая разработка > > Переключить На > master,
  • затем Групповая разработка > > Слить... > client.

Представим, что вы решили добавить наработки и из ветки server. В этом случае вы можете поступить как и раньше: переключиться на ветку server и перебазировать её в master:

  • Групповая разработка > > Переключить На > server,
  • затем Групповая разработка > > Перебазировать... > master.

Эти команды поместят результаты работы в ветке server в начало ветки master.

После чего вы сможете выполнить перемотку вперёд основной ветки master:

  • Групповая разработка > > Переключить На > master,
  • затем Групповая разработка > > Слить... > server.

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