Объединить / перебазировать «отключенную» ветку в Git - PullRequest
5 голосов
/ 18 марта 2011

Предположим, у нас в Git следующая ситуация:

      X---Y feature
     /
A---B---C---D edge

Теперь я перебазирую ветку edge, немного меняя коммит B (используя edit), так что теперь это выглядит так:

      X---Y feature

A---E---C'---D' edge

C 'и D' - это те же коммиты, что и C и D, но они применяются поверх E (и обратите внимание, что X в ветви feature стал отключенным).

Теперь, как я могу:

  1. Перебазировать / объединить ветку feature так, чтобы ее коммиты выглядели так, как если бы они были применены поверх D '?
  2. Перебазировать / объединить ветвь feature так, чтобы ее коммиты выглядели так, как будто они были применены поверх E, но без отдельного коммита 'сливающаяся ветвь ...' (а C и D переписаны для C '' и D '')?

1 Ответ

5 голосов
/ 18 марта 2011

X не отключается как таковой, он все еще имеет исходный B в качестве родителя. Если вы хотите впоследствии перебазировать feature поверх edge, тогда:

git checkout feature
git rebase edge

Если вы хотите изменить дерево так, чтобы оно имело структуру, аналогичную исходной версии, но с X в качестве дочернего элемента E, это:

git checkout feature
git rebase --onto <sha-of-E> <sha-of-B> feature
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...